From 10422265e29219680f430d8a7846f8ff8051aa0b Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Mon, 10 May 2021 02:03:47 +0000 Subject: [PATCH] CodeGen from PR 14301 in Azure/azure-rest-api-specs Merge dcc797ba0d736dfd71a0c71f74f8d26fe58fed7b into 44ee37aa734aac56220a350e44e9132877a5af8d --- .../Scripts/Find_1passAdeVersion_VM.ps1 | 190 +- .../Scripts/Find_1passAdeVersion_VMSS.ps1 | 182 +- swaggerci/appplatform/.gitattributes | 1 + swaggerci/appplatform/.gitignore | 5 + swaggerci/appplatform/Az.AppPlatform.csproj | 43 + .../appplatform/Az.AppPlatform.format.ps1xml | 2381 ++++ swaggerci/appplatform/Az.AppPlatform.nuspec | 32 + swaggerci/appplatform/Az.AppPlatform.psd1 | 24 + swaggerci/appplatform/Az.AppPlatform.psm1 | 109 + swaggerci/appplatform/MSSharedLibKey.snk | Bin 0 -> 160 bytes swaggerci/appplatform/build-module.ps1 | 157 + swaggerci/appplatform/check-dependencies.ps1 | 64 + .../appplatform/create-model-cmdlets.ps1 | 165 + .../custom/Az.AppPlatform.custom.psm1 | 17 + swaggerci/appplatform/custom/readme.md | 41 + swaggerci/appplatform/docs/Az.AppPlatform.md | 136 + ...isable-AzAppPlatformServiceTestEndpoint.md | 209 + ...Enable-AzAppPlatformServiceTestEndpoint.md | 194 + .../appplatform/docs/Get-AzAppPlatformApp.md | 199 + .../Get-AzAppPlatformAppResourceUploadUrl.md | 209 + .../docs/Get-AzAppPlatformBinding.md | 198 + .../docs/Get-AzAppPlatformCertificate.md | 184 + .../docs/Get-AzAppPlatformConfigServer.md | 163 + .../docs/Get-AzAppPlatformCustomDomain.md | 199 + .../docs/Get-AzAppPlatformDeployment.md | 220 + .../Get-AzAppPlatformDeploymentLogFileUrl.md | 240 + .../Get-AzAppPlatformMonitoringSetting.md | 163 + .../docs/Get-AzAppPlatformRuntimeVersion.md | 73 + .../docs/Get-AzAppPlatformService.md | 173 + .../docs/Get-AzAppPlatformServiceTestKey.md | 152 + .../appplatform/docs/Get-AzAppPlatformSku.md | 89 + .../appplatform/docs/New-AzAppPlatformApp.md | 396 + .../docs/New-AzAppPlatformBinding.md | 258 + .../docs/New-AzAppPlatformCertificate.md | 243 + .../docs/New-AzAppPlatformCustomDomain.md | 243 + .../docs/New-AzAppPlatformDeployment.md | 455 + .../docs/New-AzAppPlatformService.md | 336 + .../docs/New-AzAppPlatformServiceTestKey.md | 244 + .../docs/Remove-AzAppPlatformApp.md | 255 + .../docs/Remove-AzAppPlatformBinding.md | 270 + .../docs/Remove-AzAppPlatformCertificate.md | 255 + .../docs/Remove-AzAppPlatformCustomDomain.md | 270 + .../docs/Remove-AzAppPlatformDeployment.md | 270 + .../docs/Remove-AzAppPlatformService.md | 239 + .../docs/Restart-AzAppPlatformDeployment.md | 270 + .../docs/Start-AzAppPlatformDeployment.md | 270 + .../docs/Stop-AzAppPlatformDeployment.md | 270 + .../docs/Test-AzAppPlatformAppDomain.md | 259 + .../docs/Test-AzAppPlatformConfigServer.md | 451 + ...st-AzAppPlatformServiceNameAvailability.md | 244 + .../docs/Update-AzAppPlatformApp.md | 442 + .../docs/Update-AzAppPlatformBinding.md | 301 + .../Update-AzAppPlatformConfigServerPatch.md | 427 + .../docs/Update-AzAppPlatformCustomDomain.md | 286 + .../docs/Update-AzAppPlatformDeployment.md | 503 + ...ate-AzAppPlatformMonitoringSettingPatch.md | 304 + .../docs/Update-AzAppPlatformService.md | 382 + swaggerci/appplatform/docs/readme.md | 11 + ...isable-AzAppPlatformServiceTestEndpoint.md | 18 + ...Enable-AzAppPlatformServiceTestEndpoint.md | 18 + .../examples/Get-AzAppPlatformApp.md | 18 + .../Get-AzAppPlatformAppResourceUploadUrl.md | 18 + .../examples/Get-AzAppPlatformBinding.md | 18 + .../examples/Get-AzAppPlatformCertificate.md | 18 + .../examples/Get-AzAppPlatformConfigServer.md | 18 + .../examples/Get-AzAppPlatformCustomDomain.md | 18 + .../examples/Get-AzAppPlatformDeployment.md | 18 + .../Get-AzAppPlatformDeploymentLogFileUrl.md | 18 + .../Get-AzAppPlatformMonitoringSetting.md | 18 + .../Get-AzAppPlatformRuntimeVersion.md | 18 + .../examples/Get-AzAppPlatformService.md | 18 + .../Get-AzAppPlatformServiceTestKey.md | 18 + .../examples/Get-AzAppPlatformSku.md | 18 + .../examples/New-AzAppPlatformApp.md | 18 + .../examples/New-AzAppPlatformBinding.md | 18 + .../examples/New-AzAppPlatformCertificate.md | 18 + .../examples/New-AzAppPlatformCustomDomain.md | 18 + .../examples/New-AzAppPlatformDeployment.md | 18 + .../examples/New-AzAppPlatformService.md | 18 + .../New-AzAppPlatformServiceTestKey.md | 18 + .../examples/Remove-AzAppPlatformApp.md | 18 + .../examples/Remove-AzAppPlatformBinding.md | 18 + .../Remove-AzAppPlatformCertificate.md | 18 + .../Remove-AzAppPlatformCustomDomain.md | 18 + .../Remove-AzAppPlatformDeployment.md | 18 + .../examples/Remove-AzAppPlatformService.md | 18 + .../Restart-AzAppPlatformDeployment.md | 18 + .../examples/Start-AzAppPlatformDeployment.md | 18 + .../examples/Stop-AzAppPlatformDeployment.md | 18 + .../examples/Test-AzAppPlatformAppDomain.md | 18 + .../Test-AzAppPlatformConfigServer.md | 18 + ...st-AzAppPlatformServiceNameAvailability.md | 18 + .../examples/Update-AzAppPlatformApp.md | 18 + .../examples/Update-AzAppPlatformBinding.md | 18 + .../Update-AzAppPlatformConfigServerPatch.md | 18 + .../Update-AzAppPlatformCustomDomain.md | 18 + .../Update-AzAppPlatformDeployment.md | 18 + ...ate-AzAppPlatformMonitoringSettingPatch.md | 18 + .../examples/Update-AzAppPlatformService.md | 18 + swaggerci/appplatform/export-surface.ps1 | 40 + ...sable-AzAppPlatformServiceTestEndpoint.ps1 | 177 + ...nable-AzAppPlatformServiceTestEndpoint.ps1 | 171 + .../exports/Get-AzAppPlatformApp.ps1 | 189 + .../Get-AzAppPlatformAppResourceUploadUrl.ps1 | 177 + .../exports/Get-AzAppPlatformBinding.ps1 | 189 + .../exports/Get-AzAppPlatformCertificate.ps1 | 182 + .../exports/Get-AzAppPlatformConfigServer.ps1 | 171 + .../exports/Get-AzAppPlatformCustomDomain.ps1 | 188 + .../exports/Get-AzAppPlatformDeployment.ps1 | 200 + .../Get-AzAppPlatformDeploymentLogFileUrl.ps1 | 189 + .../Get-AzAppPlatformMonitoringSetting.ps1 | 171 + .../Get-AzAppPlatformRuntimeVersion.ps1 | 121 + .../exports/Get-AzAppPlatformService.ps1 | 177 + .../Get-AzAppPlatformServiceTestKey.ps1 | 145 + .../exports/Get-AzAppPlatformSku.ps1 | 132 + .../exports/New-AzAppPlatformApp.ps1 | 243 + .../exports/New-AzAppPlatformBinding.ps1 | 189 + .../exports/New-AzAppPlatformCertificate.ps1 | 182 + .../exports/New-AzAppPlatformCustomDomain.ps1 | 181 + .../exports/New-AzAppPlatformDeployment.ps1 | 274 + .../exports/New-AzAppPlatformService.ps1 | 219 + .../New-AzAppPlatformServiceTestKey.ps1 | 198 + .../exports/ProxyCmdletDefinitions.ps1 | 8284 +++++++++++ .../exports/Remove-AzAppPlatformApp.ps1 | 196 + .../exports/Remove-AzAppPlatformBinding.ps1 | 202 + .../Remove-AzAppPlatformCertificate.ps1 | 196 + .../Remove-AzAppPlatformCustomDomain.ps1 | 201 + .../Remove-AzAppPlatformDeployment.ps1 | 202 + .../exports/Remove-AzAppPlatformService.ps1 | 190 + .../Restart-AzAppPlatformDeployment.ps1 | 202 + .../exports/Start-AzAppPlatformDeployment.ps1 | 202 + .../exports/Stop-AzAppPlatformDeployment.ps1 | 202 + .../exports/Test-AzAppPlatformAppDomain.ps1 | 204 + .../Test-AzAppPlatformConfigServer.ps1 | 306 + ...t-AzAppPlatformServiceNameAvailability.ps1 | 197 + .../exports/Update-AzAppPlatformApp.ps1 | 269 + .../exports/Update-AzAppPlatformBinding.ps1 | 215 + .../Update-AzAppPlatformConfigServerPatch.ps1 | 269 + .../Update-AzAppPlatformCustomDomain.ps1 | 207 + .../Update-AzAppPlatformDeployment.ps1 | 300 + ...te-AzAppPlatformMonitoringSettingPatch.ps1 | 214 + .../exports/Update-AzAppPlatformService.ps1 | 245 + swaggerci/appplatform/exports/readme.md | 20 + swaggerci/appplatform/generate-help.ps1 | 73 + swaggerci/appplatform/generated/Module.cs | 158 + .../api/AppPlatformManagementClient.cs | 11879 ++++++++++++++++ .../generated/api/Models/Any.PowerShell.cs | 134 + .../generated/api/Models/Any.TypeConverter.cs | 147 + .../appplatform/generated/api/Models/Any.cs | 34 + .../generated/api/Models/Any.json.cs | 102 + .../AppResource.PowerShell.cs | 177 + .../AppResource.TypeConverter.cs | 142 + .../Models/Api20210601Preview/AppResource.cs | 356 + .../Api20210601Preview/AppResource.json.cs | 107 + .../AppResourceCollection.PowerShell.cs | 135 + .../AppResourceCollection.TypeConverter.cs | 142 + .../AppResourceCollection.cs | 73 + .../AppResourceCollection.json.cs | 111 + .../AppResourceProperties.PowerShell.cs | 161 + .../AppResourceProperties.TypeConverter.cs | 142 + .../AppResourceProperties.cs | 271 + .../AppResourceProperties.json.cs | 128 + ...icationInsightsAgentVersions.PowerShell.cs | 133 + ...tionInsightsAgentVersions.TypeConverter.cs | 142 + .../ApplicationInsightsAgentVersions.cs | 49 + .../ApplicationInsightsAgentVersions.json.cs | 104 + .../AvailableOperations.PowerShell.cs | 135 + .../AvailableOperations.TypeConverter.cs | 142 + .../Api20210601Preview/AvailableOperations.cs | 73 + .../AvailableOperations.json.cs | 111 + .../AvailableRuntimeVersions.PowerShell.cs | 131 + .../AvailableRuntimeVersions.TypeConverter.cs | 142 + .../AvailableRuntimeVersions.cs | 46 + .../AvailableRuntimeVersions.json.cs | 111 + .../BindingResource.PowerShell.cs | 153 + .../BindingResource.TypeConverter.cs | 142 + .../Api20210601Preview/BindingResource.cs | 214 + .../BindingResource.json.cs | 103 + .../BindingResourceCollection.PowerShell.cs | 137 + ...BindingResourceCollection.TypeConverter.cs | 142 + .../BindingResourceCollection.cs | 75 + .../BindingResourceCollection.json.cs | 113 + .../BindingResourceProperties.PowerShell.cs | 147 + ...BindingResourceProperties.TypeConverter.cs | 142 + .../BindingResourceProperties.cs | 186 + .../BindingResourceProperties.json.cs | 130 + ...ePropertiesBindingParameters.PowerShell.cs | 136 + ...opertiesBindingParameters.TypeConverter.cs | 145 + ...dingResourcePropertiesBindingParameters.cs | 32 + ...ePropertiesBindingParameters.dictionary.cs | 70 + ...esourcePropertiesBindingParameters.json.cs | 104 + .../CertificateProperties.PowerShell.cs | 151 + .../CertificateProperties.TypeConverter.cs | 142 + .../CertificateProperties.cs | 220 + .../CertificateProperties.json.cs | 148 + .../CertificateResource.PowerShell.cs | 159 + .../CertificateResource.TypeConverter.cs | 142 + .../Api20210601Preview/CertificateResource.cs | 242 + .../CertificateResource.json.cs | 103 + ...ertificateResourceCollection.PowerShell.cs | 137 + ...ificateResourceCollection.TypeConverter.cs | 142 + .../CertificateResourceCollection.cs | 65 + .../CertificateResourceCollection.json.cs | 113 + .../CloudError.PowerShell.cs | 139 + .../CloudError.TypeConverter.cs | 142 + .../Models/Api20210601Preview/CloudError.cs | 115 + .../Api20210601Preview/CloudError.json.cs | 101 + .../CloudErrorBody.PowerShell.cs | 137 + .../CloudErrorBody.TypeConverter.cs | 142 + .../Api20210601Preview/CloudErrorBody.cs | 115 + .../Api20210601Preview/CloudErrorBody.json.cs | 115 + .../ClusterResourceProperties.PowerShell.cs | 155 + ...ClusterResourceProperties.TypeConverter.cs | 142 + .../ClusterResourceProperties.cs | 228 + .../ClusterResourceProperties.json.cs | 116 + .../ConfigServerGitProperty.PowerShell.cs | 151 + .../ConfigServerGitProperty.TypeConverter.cs | 142 + .../ConfigServerGitProperty.cs | 199 + .../ConfigServerGitProperty.json.cs | 135 + .../ConfigServerProperties.PowerShell.cs | 163 + .../ConfigServerProperties.TypeConverter.cs | 142 + .../ConfigServerProperties.cs | 246 + .../ConfigServerProperties.json.cs | 108 + .../ConfigServerResource.PowerShell.cs | 171 + .../ConfigServerResource.TypeConverter.cs | 142 + .../ConfigServerResource.cs | 281 + .../ConfigServerResource.json.cs | 103 + .../ConfigServerSettings.PowerShell.cs | 153 + .../ConfigServerSettings.TypeConverter.cs | 142 + .../ConfigServerSettings.cs | 181 + .../ConfigServerSettings.json.cs | 101 + ...figServerSettingsErrorRecord.PowerShell.cs | 137 + ...ServerSettingsErrorRecord.TypeConverter.cs | 142 + .../ConfigServerSettingsErrorRecord.cs | 80 + .../ConfigServerSettingsErrorRecord.json.cs | 113 + ...ServerSettingsValidateResult.PowerShell.cs | 135 + ...verSettingsValidateResult.TypeConverter.cs | 143 + .../ConfigServerSettingsValidateResult.cs | 63 + ...ConfigServerSettingsValidateResult.json.cs | 112 + .../CustomDomainProperties.PowerShell.cs | 137 + .../CustomDomainProperties.TypeConverter.cs | 142 + .../CustomDomainProperties.cs | 83 + .../CustomDomainProperties.json.cs | 108 + .../CustomDomainResource.PowerShell.cs | 145 + .../CustomDomainResource.TypeConverter.cs | 142 + .../CustomDomainResource.cs | 126 + .../CustomDomainResource.json.cs | 103 + ...stomDomainResourceCollection.PowerShell.cs | 137 + ...mDomainResourceCollection.TypeConverter.cs | 142 + .../CustomDomainResourceCollection.cs | 65 + .../CustomDomainResourceCollection.json.cs | 113 + .../CustomDomainValidatePayload.PowerShell.cs | 133 + ...stomDomainValidatePayload.TypeConverter.cs | 142 + .../CustomDomainValidatePayload.cs | 46 + .../CustomDomainValidatePayload.json.cs | 101 + .../CustomDomainValidateResult.PowerShell.cs | 135 + ...ustomDomainValidateResult.TypeConverter.cs | 142 + .../CustomDomainValidateResult.cs | 63 + .../CustomDomainValidateResult.json.cs | 103 + .../DeploymentInstance.PowerShell.cs | 141 + .../DeploymentInstance.TypeConverter.cs | 142 + .../Api20210601Preview/DeploymentInstance.cs | 129 + .../DeploymentInstance.json.cs | 124 + .../DeploymentResource.PowerShell.cs | 189 + .../DeploymentResource.TypeConverter.cs | 142 + .../Api20210601Preview/DeploymentResource.cs | 472 + .../DeploymentResource.json.cs | 105 + ...DeploymentResourceCollection.PowerShell.cs | 135 + ...loymentResourceCollection.TypeConverter.cs | 142 + .../DeploymentResourceCollection.cs | 73 + .../DeploymentResourceCollection.json.cs | 111 + ...DeploymentResourceProperties.PowerShell.cs | 173 + ...loymentResourceProperties.TypeConverter.cs | 142 + .../DeploymentResourceProperties.cs | 398 + .../DeploymentResourceProperties.json.cs | 141 + .../DeploymentSettings.PowerShell.cs | 149 + .../DeploymentSettings.TypeConverter.cs | 142 + .../Api20210601Preview/DeploymentSettings.cs | 216 + .../DeploymentSettings.json.cs | 113 + ...SettingsEnvironmentVariables.PowerShell.cs | 136 + ...tingsEnvironmentVariables.TypeConverter.cs | 145 + .../DeploymentSettingsEnvironmentVariables.cs | 30 + ...SettingsEnvironmentVariables.dictionary.cs | 70 + ...oymentSettingsEnvironmentVariables.json.cs | 103 + .../Api20210601Preview/Error.PowerShell.cs | 133 + .../Api20210601Preview/Error.TypeConverter.cs | 142 + .../api/Models/Api20210601Preview/Error.cs | 63 + .../Models/Api20210601Preview/Error.json.cs | 103 + .../GitPatternRepository.PowerShell.cs | 153 + .../GitPatternRepository.TypeConverter.cs | 142 + .../GitPatternRepository.cs | 216 + .../GitPatternRepository.json.cs | 137 + .../LogFileUrlResponse.PowerShell.cs | 133 + .../LogFileUrlResponse.TypeConverter.cs | 142 + .../Api20210601Preview/LogFileUrlResponse.cs | 46 + .../LogFileUrlResponse.json.cs | 101 + .../LogSpecification.PowerShell.cs | 137 + .../LogSpecification.TypeConverter.cs | 142 + .../Api20210601Preview/LogSpecification.cs | 80 + .../LogSpecification.json.cs | 105 + .../ManagedIdentityProperties.PowerShell.cs | 137 + ...ManagedIdentityProperties.TypeConverter.cs | 142 + .../ManagedIdentityProperties.cs | 80 + .../ManagedIdentityProperties.json.cs | 105 + .../MetricDimension.PowerShell.cs | 133 + .../MetricDimension.TypeConverter.cs | 142 + .../Api20210601Preview/MetricDimension.cs | 63 + .../MetricDimension.json.cs | 103 + .../MetricSpecification.PowerShell.cs | 151 + .../MetricSpecification.TypeConverter.cs | 142 + .../Api20210601Preview/MetricSpecification.cs | 217 + .../MetricSpecification.json.cs | 143 + .../MonitoringSettingProperties.PowerShell.cs | 149 + ...nitoringSettingProperties.TypeConverter.cs | 142 + .../MonitoringSettingProperties.cs | 190 + .../MonitoringSettingProperties.json.cs | 114 + .../MonitoringSettingResource.PowerShell.cs | 157 + ...MonitoringSettingResource.TypeConverter.cs | 142 + .../MonitoringSettingResource.cs | 216 + .../MonitoringSettingResource.json.cs | 103 + .../NameAvailability.PowerShell.cs | 137 + .../NameAvailability.TypeConverter.cs | 142 + .../Api20210601Preview/NameAvailability.cs | 80 + .../NameAvailability.json.cs | 105 + .../NameAvailabilityParameters.PowerShell.cs | 135 + ...ameAvailabilityParameters.TypeConverter.cs | 142 + .../NameAvailabilityParameters.cs | 63 + .../NameAvailabilityParameters.json.cs | 103 + .../NetworkProfile.PowerShell.cs | 145 + .../NetworkProfile.TypeConverter.cs | 142 + .../Api20210601Preview/NetworkProfile.cs | 181 + .../Api20210601Preview/NetworkProfile.json.cs | 127 + .../NetworkProfileOutboundIPs.PowerShell.cs | 133 + ...NetworkProfileOutboundIPs.TypeConverter.cs | 142 + .../NetworkProfileOutboundIPs.cs | 49 + .../NetworkProfileOutboundIPs.json.cs | 112 + .../OperationDetail.PowerShell.cs | 153 + .../OperationDetail.TypeConverter.cs | 142 + .../Api20210601Preview/OperationDetail.cs | 193 + .../OperationDetail.json.cs | 109 + .../OperationDisplay.PowerShell.cs | 139 + .../OperationDisplay.TypeConverter.cs | 142 + .../Api20210601Preview/OperationDisplay.cs | 97 + .../OperationDisplay.json.cs | 107 + .../OperationProperties.PowerShell.cs | 137 + .../OperationProperties.TypeConverter.cs | 142 + .../Api20210601Preview/OperationProperties.cs | 69 + .../OperationProperties.json.cs | 101 + .../PersistentDisk.PowerShell.cs | 135 + .../PersistentDisk.TypeConverter.cs | 142 + .../Api20210601Preview/PersistentDisk.cs | 83 + .../Api20210601Preview/PersistentDisk.json.cs | 108 + .../ProxyResource.PowerShell.cs | 137 + .../ProxyResource.TypeConverter.cs | 142 + .../Api20210601Preview/ProxyResource.cs | 71 + .../Api20210601Preview/ProxyResource.json.cs | 103 + ...enerateTestKeyRequestPayload.PowerShell.cs | 133 + ...rateTestKeyRequestPayload.TypeConverter.cs | 142 + .../RegenerateTestKeyRequestPayload.cs | 46 + .../RegenerateTestKeyRequestPayload.json.cs | 101 + .../RequiredTraffic.PowerShell.cs | 139 + .../RequiredTraffic.TypeConverter.cs | 142 + .../Api20210601Preview/RequiredTraffic.cs | 129 + .../RequiredTraffic.json.cs | 140 + .../Api20210601Preview/Resource.PowerShell.cs | 135 + .../Resource.TypeConverter.cs | 142 + .../api/Models/Api20210601Preview/Resource.cs | 89 + .../Api20210601Preview/Resource.json.cs | 114 + .../ResourceRequests.PowerShell.cs | 135 + .../ResourceRequests.TypeConverter.cs | 142 + .../Api20210601Preview/ResourceRequests.cs | 81 + .../ResourceRequests.json.cs | 103 + .../ResourceSku.PowerShell.cs | 151 + .../ResourceSku.TypeConverter.cs | 142 + .../Models/Api20210601Preview/ResourceSku.cs | 215 + .../Api20210601Preview/ResourceSku.json.cs | 137 + .../ResourceSkuCapabilities.PowerShell.cs | 133 + .../ResourceSkuCapabilities.TypeConverter.cs | 142 + .../ResourceSkuCapabilities.cs | 60 + .../ResourceSkuCapabilities.json.cs | 102 + .../ResourceSkuCollection.PowerShell.cs | 137 + .../ResourceSkuCollection.TypeConverter.cs | 142 + .../ResourceSkuCollection.cs | 75 + .../ResourceSkuCollection.json.cs | 113 + .../ResourceSkuLocationInfo.PowerShell.cs | 137 + .../ResourceSkuLocationInfo.TypeConverter.cs | 142 + .../ResourceSkuLocationInfo.cs | 80 + .../ResourceSkuLocationInfo.json.cs | 121 + .../ResourceSkuRestrictionInfo.PowerShell.cs | 135 + ...esourceSkuRestrictionInfo.TypeConverter.cs | 142 + .../ResourceSkuRestrictionInfo.cs | 63 + .../ResourceSkuRestrictionInfo.json.cs | 119 + .../ResourceSkuRestrictions.PowerShell.cs | 143 + .../ResourceSkuRestrictions.TypeConverter.cs | 142 + .../ResourceSkuRestrictions.cs | 136 + .../ResourceSkuRestrictions.json.cs | 115 + .../ResourceSkuZoneDetails.PowerShell.cs | 135 + .../ResourceSkuZoneDetails.TypeConverter.cs | 142 + .../ResourceSkuZoneDetails.cs | 83 + .../ResourceSkuZoneDetails.json.cs | 119 + .../ResourceUploadDefinition.PowerShell.cs | 135 + .../ResourceUploadDefinition.TypeConverter.cs | 142 + .../ResourceUploadDefinition.cs | 63 + .../ResourceUploadDefinition.json.cs | 103 + .../ServiceResource.PowerShell.cs | 173 + .../ServiceResource.TypeConverter.cs | 142 + .../Api20210601Preview/ServiceResource.cs | 328 + .../ServiceResource.json.cs | 105 + .../ServiceResourceList.PowerShell.cs | 137 + .../ServiceResourceList.TypeConverter.cs | 142 + .../Api20210601Preview/ServiceResourceList.cs | 75 + .../ServiceResourceList.json.cs | 113 + .../ServiceSpecification.PowerShell.cs | 135 + .../ServiceSpecification.TypeConverter.cs | 142 + .../ServiceSpecification.cs | 63 + .../ServiceSpecification.json.cs | 119 + .../Api20210601Preview/Sku.PowerShell.cs | 135 + .../Api20210601Preview/Sku.TypeConverter.cs | 142 + .../api/Models/Api20210601Preview/Sku.cs | 80 + .../api/Models/Api20210601Preview/Sku.json.cs | 105 + .../SkuCapacity.PowerShell.cs | 137 + .../SkuCapacity.TypeConverter.cs | 142 + .../Models/Api20210601Preview/SkuCapacity.cs | 97 + .../Api20210601Preview/SkuCapacity.json.cs | 107 + .../SupportedRuntimeVersion.PowerShell.cs | 137 + .../SupportedRuntimeVersion.TypeConverter.cs | 142 + .../SupportedRuntimeVersion.cs | 80 + .../SupportedRuntimeVersion.json.cs | 105 + .../TemporaryDisk.PowerShell.cs | 133 + .../TemporaryDisk.TypeConverter.cs | 142 + .../Api20210601Preview/TemporaryDisk.cs | 63 + .../Api20210601Preview/TemporaryDisk.json.cs | 103 + .../Api20210601Preview/TestKeys.PowerShell.cs | 139 + .../TestKeys.TypeConverter.cs | 142 + .../api/Models/Api20210601Preview/TestKeys.cs | 114 + .../Api20210601Preview/TestKeys.json.cs | 109 + .../TrackedResource.PowerShell.cs | 139 + .../TrackedResource.TypeConverter.cs | 142 + .../Api20210601Preview/TrackedResource.cs | 109 + .../TrackedResource.json.cs | 105 + .../TrackedResourceTags.PowerShell.cs | 137 + .../TrackedResourceTags.TypeConverter.cs | 142 + .../Api20210601Preview/TrackedResourceTags.cs | 32 + .../TrackedResourceTags.dictionary.cs | 70 + .../TrackedResourceTags.json.cs | 104 + .../UserSourceInfo.PowerShell.cs | 137 + .../UserSourceInfo.TypeConverter.cs | 142 + .../Api20210601Preview/UserSourceInfo.cs | 107 + .../Api20210601Preview/UserSourceInfo.json.cs | 107 + .../Models/AppPlatformIdentity.PowerShell.cs | 152 + .../AppPlatformIdentity.TypeConverter.cs | 157 + .../api/Models/AppPlatformIdentity.cs | 219 + .../api/Models/AppPlatformIdentity.json.cs | 123 + .../AppResourceProvisioningState.Completer.cs | 47 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../Support/AppResourceProvisioningState.cs | 106 + .../Support/ConfigServerState.Completer.cs | 51 + .../ConfigServerState.TypeConverter.cs | 59 + .../api/Support/ConfigServerState.cs | 104 + ...mentResourceProvisioningState.Completer.cs | 47 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../DeploymentResourceProvisioningState.cs | 108 + .../DeploymentResourceStatus.Completer.cs | 59 + .../DeploymentResourceStatus.TypeConverter.cs | 59 + .../api/Support/DeploymentResourceStatus.cs | 108 + .../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 + .../Support/ProvisioningState.Completer.cs | 67 + .../ProvisioningState.TypeConverter.cs | 59 + .../api/Support/ProvisioningState.cs | 112 + ...urceSkuRestrictionsReasonCode.Completer.cs | 41 + ...SkuRestrictionsReasonCode.TypeConverter.cs | 61 + .../ResourceSkuRestrictionsReasonCode.cs | 106 + .../ResourceSkuRestrictionsType.Completer.cs | 39 + ...sourceSkuRestrictionsType.TypeConverter.cs | 59 + .../Support/ResourceSkuRestrictionsType.cs | 102 + .../api/Support/RuntimeVersion.Completer.cs | 43 + .../Support/RuntimeVersion.TypeConverter.cs | 59 + .../generated/api/Support/RuntimeVersion.cs | 100 + .../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 | 43 + .../SupportedRuntimeValue.TypeConverter.cs | 59 + .../api/Support/SupportedRuntimeValue.cs | 100 + .../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 + .../api/Support/UserSourceType.Completer.cs | 43 + .../Support/UserSourceType.TypeConverter.cs | 59 + .../generated/api/Support/UserSourceType.cs | 100 + ...zAppPlatformServiceTestEndpoint_Disable.cs | 409 + ...mServiceTestEndpoint_DisableViaIdentity.cs | 385 + ...AzAppPlatformServiceTestEndpoint_Enable.cs | 404 + ...rmServiceTestEndpoint_EnableViaIdentity.cs | 380 + ...etAzAppPlatformAppResourceUploadUrl_Get.cs | 423 + ...formAppResourceUploadUrl_GetViaIdentity.cs | 386 + .../cmdlets/GetAzAppPlatformApp_Get.cs | 433 + .../GetAzAppPlatformApp_GetViaIdentity.cs | 395 + .../cmdlets/GetAzAppPlatformApp_List.cs | 415 + .../cmdlets/GetAzAppPlatformBinding_Get.cs | 433 + .../GetAzAppPlatformBinding_GetViaIdentity.cs | 385 + .../cmdlets/GetAzAppPlatformBinding_List.cs | 429 + .../GetAzAppPlatformCertificate_Get.cs | 419 + ...AzAppPlatformCertificate_GetViaIdentity.cs | 381 + .../GetAzAppPlatformCertificate_List.cs | 415 + .../GetAzAppPlatformConfigServer_Get.cs | 404 + ...zAppPlatformConfigServer_GetViaIdentity.cs | 377 + .../GetAzAppPlatformCustomDomain_Get.cs | 432 + ...zAppPlatformCustomDomain_GetViaIdentity.cs | 385 + .../GetAzAppPlatformCustomDomain_List.cs | 429 + ...etAzAppPlatformDeploymentLogFileUrl_Get.cs | 476 + ...formDeploymentLogFileUrl_GetViaIdentity.cs | 429 + .../cmdlets/GetAzAppPlatformDeployment_Get.cs | 433 + ...tAzAppPlatformDeployment_GetViaIdentity.cs | 385 + .../GetAzAppPlatformDeployment_List.cs | 444 + .../GetAzAppPlatformDeployment_List1.cs | 430 + .../GetAzAppPlatformMonitoringSetting_Get.cs | 404 + ...latformMonitoringSetting_GetViaIdentity.cs | 377 + .../cmdlets/GetAzAppPlatformOperation_List.cs | 363 + .../GetAzAppPlatformRuntimeVersion_List.cs | 352 + .../GetAzAppPlatformServiceTestKey_List.cs | 407 + .../cmdlets/GetAzAppPlatformService_Get.cs | 405 + .../GetAzAppPlatformService_GetViaIdentity.cs | 377 + .../cmdlets/GetAzAppPlatformService_List.cs | 384 + .../cmdlets/GetAzAppPlatformService_List1.cs | 401 + .../cmdlets/GetAzAppPlatformSku_List.cs | 384 + .../NewAzAppPlatformApp_CreateExpanded.cs | 637 + .../NewAzAppPlatformBinding_CreateExpanded.cs | 542 + ...AzAppPlatformCertificate_CreateExpanded.cs | 526 + ...zAppPlatformCustomDomain_CreateExpanded.cs | 529 + ...wAzAppPlatformDeployment_CreateExpanded.cs | 692 + ...wAzAppPlatformServiceTestKey_Regenerate.cs | 417 + ...atformServiceTestKey_RegenerateExpanded.cs | 422 + ...ormServiceTestKey_RegenerateViaIdentity.cs | 393 + ...ceTestKey_RegenerateViaIdentityExpanded.cs | 398 + .../NewAzAppPlatformService_CreateExpanded.cs | 597 + .../cmdlets/RemoveAzAppPlatformApp_Delete.cs | 525 + ...emoveAzAppPlatformApp_DeleteViaIdentity.cs | 486 + .../RemoveAzAppPlatformBinding_Delete.cs | 540 + ...eAzAppPlatformBinding_DeleteViaIdentity.cs | 490 + .../RemoveAzAppPlatformCertificate_Delete.cs | 525 + ...ppPlatformCertificate_DeleteViaIdentity.cs | 486 + .../RemoveAzAppPlatformCustomDomain_Delete.cs | 539 + ...pPlatformCustomDomain_DeleteViaIdentity.cs | 490 + .../RemoveAzAppPlatformDeployment_Delete.cs | 540 + ...AppPlatformDeployment_DeleteViaIdentity.cs | 490 + .../RemoveAzAppPlatformService_Delete.cs | 476 + ...eAzAppPlatformService_DeleteViaIdentity.cs | 448 + .../RestartAzAppPlatformDeployment_Restart.cs | 506 + ...ppPlatformDeployment_RestartViaIdentity.cs | 456 + .../StartAzAppPlatformDeployment_Start.cs | 506 + ...zAppPlatformDeployment_StartViaIdentity.cs | 456 + .../StopAzAppPlatformDeployment_Stop.cs | 506 + ...AzAppPlatformDeployment_StopViaIdentity.cs | 456 + .../TestAzAppPlatformAppDomain_Validate.cs | 431 + ...AzAppPlatformAppDomain_ValidateExpanded.cs | 435 + ...ppPlatformAppDomain_ValidateViaIdentity.cs | 397 + ...rmAppDomain_ValidateViaIdentityExpanded.cs | 401 + .../TestAzAppPlatformConfigServer_Validate.cs | 484 + ...ppPlatformConfigServer_ValidateExpanded.cs | 589 + ...latformConfigServer_ValidateViaIdentity.cs | 457 + ...onfigServer_ValidateViaIdentityExpanded.cs | 564 + ...ppPlatformServiceNameAvailability_Check.cs | 400 + ...rmServiceNameAvailability_CheckExpanded.cs | 415 + ...erviceNameAvailability_CheckViaIdentity.cs | 389 + ...meAvailability_CheckViaIdentityExpanded.cs | 405 + .../UpdateAzAppPlatformApp_UpdateExpanded.cs | 637 + ...ppPlatformApp_UpdateViaIdentityExpanded.cs | 598 + ...dateAzAppPlatformBinding_UpdateExpanded.cs | 542 + ...atformBinding_UpdateViaIdentityExpanded.cs | 492 + ...latformConfigServerPatch_UpdateExpanded.cs | 611 + ...igServerPatch_UpdateViaIdentityExpanded.cs | 587 + ...zAppPlatformCustomDomain_UpdateExpanded.cs | 529 + ...mCustomDomain_UpdateViaIdentityExpanded.cs | 482 + ...eAzAppPlatformDeployment_UpdateExpanded.cs | 692 + ...ormDeployment_UpdateViaIdentityExpanded.cs | 642 + ...rmMonitoringSettingPatch_UpdateExpanded.cs | 541 + ...gSettingPatch_UpdateViaIdentityExpanded.cs | 515 + ...dateAzAppPlatformService_UpdateExpanded.cs | 597 + ...atformService_UpdateViaIdentityExpanded.cs | 569 + .../Az.Accounts/2.2.3/Accounts.format.ps1xml | 437 + .../2.2.3/Accounts.generated.format.ps1xml | 446 + .../Az.Accounts/2.2.3/Accounts.types.ps1xml | 281 + .../Az.Accounts/2.2.3/Az.Accounts.nuspec | 19 + .../Az.Accounts/2.2.3/Az.Accounts.psd1 | 362 + .../Az.Accounts/2.2.3/Az.Accounts.psm1 | 339 + .../modules/Az.Accounts/2.2.3/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.2.3/Microsoft.ApplicationInsights.dll | Bin 0 -> 179960 bytes .../2.2.3/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 108424 bytes ...l.Authentication.ResourceManager.deps.json | 2383 ++++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 78720 bytes ....Azure.PowerShell.Authentication.deps.json | 2348 +++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 122760 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 88968 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 149896 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1418624 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 578440 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 121736 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 412552 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1687432 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 177032 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1158024 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 132488 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3271048 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2486 ++++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 430984 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11075 ++++++++++++++ .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 255360 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 19336 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 64392 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.2.3/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 79736 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.2.3/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../2.2.3/NetCoreAssemblies/Azure.Core.dll | Bin 0 -> 151936 bytes .../NetCoreAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54648 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1310664 bytes .../NetCoreAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163464 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18808 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 99192 bytes .../NetCoreAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 14712 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 197 + .../2.2.3/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 160136 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 216960 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 37256 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 54136 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1377736 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 701336 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 662936 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21384 bytes .../2.2.3/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 163712 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 1893240 bytes .../System.Reflection.DispatchProxy.dll | Bin 0 -> 24992 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16760 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Cryptography.Cng.dll | Bin 0 -> 23976 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.ServiceModel.Primitives.dll | Bin 0 -> 28552 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 57720 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 294264 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 32904 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.2.3/StartupScripts/AzError.ps1 | 256 + .../InitializeAssemblyResolver.ps1 | 199 + .../Az.Accounts/2.2.3/[Content_Types].xml | 13 + .../modules/Az.Accounts/2.2.3/_rels/.rels | 5 + .../a81ca9a9339b4bd291ed0d31ee492ddd.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 828 ++ .../appplatform/generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 177 + .../BuildTime/Cmdlets/ExportCmdletSurface.cs | 113 + .../BuildTime/Cmdlets/ExportExampleStub.cs | 74 + .../BuildTime/Cmdlets/ExportFormatPs1xml.cs | 99 + .../BuildTime/Cmdlets/ExportHelpMarkdown.cs | 53 + .../BuildTime/Cmdlets/ExportModelSurface.cs | 117 + .../BuildTime/Cmdlets/ExportProxyCmdlet.cs | 159 + .../runtime/BuildTime/Cmdlets/ExportPsd1.cs | 191 + .../BuildTime/Cmdlets/ExportTestStub.cs | 137 + .../BuildTime/Cmdlets/GetCommonParameter.cs | 52 + .../BuildTime/Cmdlets/GetModuleGuid.cs | 31 + .../BuildTime/Cmdlets/GetScriptCmdlet.cs | 53 + .../runtime/BuildTime/CollectionExtensions.cs | 20 + .../runtime/BuildTime/MarkdownRenderer.cs | 121 + .../runtime/BuildTime/Models/PsFormatTypes.cs | 138 + .../BuildTime/Models/PsHelpMarkdownOutputs.cs | 177 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 199 + .../BuildTime/Models/PsMarkdownTypes.cs | 291 + .../BuildTime/Models/PsProxyOutputs.cs | 513 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 499 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 160 + .../generated/runtime/BuildTime/PsHelpers.cs | 104 + .../runtime/BuildTime/StringExtensions.cs | 24 + .../runtime/BuildTime/XmlExtensions.cs | 28 + .../generated/runtime/CmdInfoHandler.cs | 40 + .../Conversions/ConversionException.cs | 17 + .../runtime/Conversions/IJsonConverter.cs | 13 + .../Conversions/Instances/BinaryConverter.cs | 24 + .../Conversions/Instances/BooleanConverter.cs | 13 + .../Instances/DateTimeConverter.cs | 18 + .../Instances/DateTimeOffsetConverter.cs | 15 + .../Conversions/Instances/DecimalConverter.cs | 16 + .../Conversions/Instances/DoubleConverter.cs | 13 + .../Conversions/Instances/EnumConverter.cs | 30 + .../Conversions/Instances/GuidConverter.cs | 15 + .../Instances/HashSet'1Converter.cs | 27 + .../Conversions/Instances/Int16Converter.cs | 13 + .../Conversions/Instances/Int32Converter.cs | 13 + .../Conversions/Instances/Int64Converter.cs | 13 + .../Instances/JsonArrayConverter.cs | 13 + .../Instances/JsonObjectConverter.cs | 13 + .../Conversions/Instances/SingleConverter.cs | 13 + .../Conversions/Instances/StringConverter.cs | 13 + .../Instances/TimeSpanConverter.cs | 15 + .../Conversions/Instances/UInt16Converter.cs | 13 + .../Conversions/Instances/UInt32Converter.cs | 13 + .../Conversions/Instances/UInt64Converter.cs | 13 + .../Conversions/Instances/UriConverter.cs | 15 + .../runtime/Conversions/JsonConverter.cs | 21 + .../Conversions/JsonConverterAttribute.cs | 18 + .../Conversions/JsonConverterFactory.cs | 91 + .../Conversions/StringLikeConverter.cs | 45 + .../Customizations/IJsonSerializable.cs | 249 + .../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 | 36 + .../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 | 111 + .../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 | 21 + .../generated/runtime/IHeaderSerializable.cs | 14 + .../generated/runtime/ISendAsync.cs | 296 + .../generated/runtime/InfoAttribute.cs | 34 + .../generated/runtime/Iso/IsoDate.cs | 214 + .../appplatform/generated/runtime/JsonType.cs | 18 + .../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 + .../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 | 190 + .../runtime/UndeclaredResponseException.cs | 109 + .../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 | 121 + .../internal/ProxyCmdletDefinitions.ps1 | 121 + swaggerci/appplatform/internal/readme.md | 14 + swaggerci/appplatform/license.txt | 227 + swaggerci/appplatform/pack-module.ps1 | 16 + swaggerci/appplatform/readme.md | 38 + swaggerci/appplatform/resources/readme.md | 11 + swaggerci/appplatform/run-module.ps1 | 61 + swaggerci/appplatform/test-module.ps1 | 70 + ...AzAppPlatformServiceTestEndpoint.Tests.ps1 | 22 + ...AzAppPlatformServiceTestEndpoint.Tests.ps1 | 22 + .../test/Get-AzAppPlatformApp.Tests.ps1 | 26 + ...zAppPlatformAppResourceUploadUrl.Tests.ps1 | 22 + .../test/Get-AzAppPlatformBinding.Tests.ps1 | 26 + .../Get-AzAppPlatformCertificate.Tests.ps1 | 26 + .../Get-AzAppPlatformConfigServer.Tests.ps1 | 22 + .../Get-AzAppPlatformCustomDomain.Tests.ps1 | 26 + .../Get-AzAppPlatformDeployment.Tests.ps1 | 30 + ...zAppPlatformDeploymentLogFileUrl.Tests.ps1 | 22 + ...t-AzAppPlatformMonitoringSetting.Tests.ps1 | 22 + .../Get-AzAppPlatformRuntimeVersion.Tests.ps1 | 18 + .../test/Get-AzAppPlatformService.Tests.ps1 | 30 + .../Get-AzAppPlatformServiceTestKey.Tests.ps1 | 18 + .../test/Get-AzAppPlatformSku.Tests.ps1 | 18 + .../test/New-AzAppPlatformApp.Tests.ps1 | 18 + .../test/New-AzAppPlatformBinding.Tests.ps1 | 18 + .../New-AzAppPlatformCertificate.Tests.ps1 | 18 + .../New-AzAppPlatformCustomDomain.Tests.ps1 | 18 + .../New-AzAppPlatformDeployment.Tests.ps1 | 18 + .../test/New-AzAppPlatformService.Tests.ps1 | 18 + .../New-AzAppPlatformServiceTestKey.Tests.ps1 | 30 + .../test/Remove-AzAppPlatformApp.Tests.ps1 | 22 + .../Remove-AzAppPlatformBinding.Tests.ps1 | 22 + .../Remove-AzAppPlatformCertificate.Tests.ps1 | 22 + ...Remove-AzAppPlatformCustomDomain.Tests.ps1 | 22 + .../Remove-AzAppPlatformDeployment.Tests.ps1 | 22 + .../Remove-AzAppPlatformService.Tests.ps1 | 22 + .../Restart-AzAppPlatformDeployment.Tests.ps1 | 22 + .../Start-AzAppPlatformDeployment.Tests.ps1 | 22 + .../Stop-AzAppPlatformDeployment.Tests.ps1 | 22 + .../Test-AzAppPlatformAppDomain.Tests.ps1 | 30 + .../Test-AzAppPlatformConfigServer.Tests.ps1 | 30 + ...pPlatformServiceNameAvailability.Tests.ps1 | 30 + .../test/Update-AzAppPlatformApp.Tests.ps1 | 22 + .../Update-AzAppPlatformBinding.Tests.ps1 | 22 + ...e-AzAppPlatformConfigServerPatch.Tests.ps1 | 22 + ...Update-AzAppPlatformCustomDomain.Tests.ps1 | 22 + .../Update-AzAppPlatformDeployment.Tests.ps1 | 22 + ...ppPlatformMonitoringSettingPatch.Tests.ps1 | 22 + .../Update-AzAppPlatformService.Tests.ps1 | 22 + swaggerci/appplatform/test/loadEnv.ps1 | 28 + swaggerci/appplatform/test/readme.md | 17 + swaggerci/appplatform/test/utils.ps1 | 24 + .../utils/Unprotect-SecureString.ps1 | 16 + 844 files changed, 162740 insertions(+), 186 deletions(-) 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/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-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.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-AzAppPlatformBinding.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-AzAppPlatformCustomDomain.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-AzAppPlatformMonitoringSetting.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-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/docs/Get-AzAppPlatformSku.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/New-AzAppPlatformDeployment.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/Remove-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/docs/Remove-AzAppPlatformService.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/Stop-AzAppPlatformDeployment.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-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/docs/readme.md create mode 100644 swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md create mode 100644 swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.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-AzAppPlatformBinding.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-AzAppPlatformCustomDomain.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-AzAppPlatformMonitoringSetting.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-AzAppPlatformServiceTestKey.md create mode 100644 swaggerci/appplatform/examples/Get-AzAppPlatformSku.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/New-AzAppPlatformDeployment.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/Remove-AzAppPlatformApp.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md create mode 100644 swaggerci/appplatform/examples/Remove-AzAppPlatformService.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/Stop-AzAppPlatformDeployment.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-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-AzAppPlatformServiceTestEndpoint.ps1 create mode 100644 swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.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-AzAppPlatformBinding.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-AzAppPlatformCustomDomain.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-AzAppPlatformMonitoringSetting.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-AzAppPlatformServiceTestKey.ps1 create mode 100644 swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/New-AzAppPlatformDeployment.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/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 create mode 100644 swaggerci/appplatform/exports/Remove-AzAppPlatformService.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/Stop-AzAppPlatformDeployment.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-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/exports/readme.md 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/Api20210601Preview/AppResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.dictionary.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.json.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.PowerShell.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.cs create mode 100644 swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.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/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/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/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/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/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/RuntimeVersion.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/RuntimeVersion.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/RuntimeVersion.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/api/Support/UserSourceType.Completer.cs create mode 100644 swaggerci/appplatform/generated/api/Support/UserSourceType.TypeConverter.cs create mode 100644 swaggerci/appplatform/generated/api/Support/UserSourceType.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/EnableAzAppPlatformServiceTestEndpoint_Enable.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.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/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/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/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/GetAzAppPlatformDeploymentLogFileUrl_Get.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_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/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/GetAzAppPlatformRuntimeVersion_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/NewAzAppPlatformApp_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_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/RemoveAzAppPlatformApp_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_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/RemoveAzAppPlatformCertificate_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_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/RemoveAzAppPlatformDeployment_Delete.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_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/RestartAzAppPlatformDeployment_Restart.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.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/StopAzAppPlatformDeployment_Stop.cs create mode 100644 swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.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/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.2.3/Accounts.format.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Core.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Azure.Identity.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Text.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/StartupScripts/AzError.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/[Content_Types].xml create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/_rels/.rels create mode 100644 swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/package/services/metadata/core-properties/a81ca9a9339b4bd291ed0d31ee492ddd.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/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/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-AzAppPlatformServiceTestEndpoint.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Enable-AzAppPlatformServiceTestEndpoint.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-AzAppPlatformBinding.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-AzAppPlatformCustomDomain.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-AzAppPlatformMonitoringSetting.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-AzAppPlatformServiceTestKey.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Get-AzAppPlatformSku.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformCertificate.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/New-AzAppPlatformDeployment.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/Remove-AzAppPlatformApp.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformBinding.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformCertificate.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformCustomDomain.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformDeployment.Tests.ps1 create mode 100644 swaggerci/appplatform/test/Remove-AzAppPlatformService.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/Stop-AzAppPlatformDeployment.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-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/readme.md create mode 100644 swaggerci/appplatform/test/utils.ps1 create mode 100644 swaggerci/appplatform/utils/Unprotect-SecureString.ps1 diff --git a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 index 620320ee1c46..f99898c012b5 100644 --- a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 +++ b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VM.ps1 @@ -1,96 +1,96 @@ -<# -READ ME: -This script finds Windows and Linux Virtual Machines encrypted with single pass ADE in all resource groups present in a subscription. -INPUT: -Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx -OUTPUT: -A .csv file with file name "_AdeVMInfo.csv" is created in the same working directory. -Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMs. -#> - -$ErrorActionPreference = "Continue" -$SubscriptionId = Read-Host("Enter Subscription ID") -$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId - -if($setSubscriptionContext -ne $null) -{ - $getAllVMInSubscription = Get-AzVM - $outputContent = @() - - foreach ($vmobject in $getAllVMInSubscription) - { - $vm_OS = "" - if ($vmobject.OSProfile.WindowsConfiguration -eq $null) - { - $vm_OS = "Linux" - } - else - { - $vm_OS = "Windows" - } - - $vmInstanceView = Get-AzVM -ResourceGroupName $vmobject.ResourceGroupName -Name $vmobject.Name -Status - - $isVMADEEncrypted = $false - $isStoppedVM = $false - $adeVersion = "" - - #Find ADE extension version if ADE extension is installed - $vmExtensions = $vmInstanceView.Extensions - foreach ($extension in $vmExtensions) - { - if ($extension.Name -like "azurediskencryption*") - { - $adeVersion = $extension.TypeHandlerVersion - $isVMADEEncrypted = $true - break; - } - } - - #Look for encryption settings on disks. This applies to VMs that are in deallocated state - #Extension version information is unavailable for stopped VMs - if ($isVMADEEncrypted -eq $false) - { - $disks = $vmInstanceView.Disks - foreach ($diskObject in $disks) - { - if ($diskObject.EncryptionSettings -ne $null) - { - $isStoppedEncryptedVM = $true - break; - } - } - } - - if ($isVMADEEncrypted) - { - #Prepare output content for single pass VMs - if ((($vm_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vm_OS -eq "Linux") -and ($adeVersion -like "1.*"))) - { - $results = @{ - VMName = $vmobject.Name - ResourceGroupName = $vmobject.ResourceGroupName - VM_OS = $vm_OS - ADE_Version = $adeVersion - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VM " $vmobject.Name - } - } - elseif ($isStoppedEncryptedVM) - { - $results = @{ - VMName = $vmobject.Name - ResourceGroupName = $vmobject.ResourceGroupName - VM_OS = $vm_OS - ADE_Version = "Not Available" - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VM. ADE version = Not available " $vmobject.Name - } - } - - #Write to output file - $filePath = ".\" + $SubscriptionId + "_AdeVMInfo.csv" - $outputContent | export-csv -Path $filePath -NoTypeInformation +<# +READ ME: +This script finds Windows and Linux Virtual Machines encrypted with single pass ADE in all resource groups present in a subscription. +INPUT: +Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx +OUTPUT: +A .csv file with file name "_AdeVMInfo.csv" is created in the same working directory. +Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMs. +#> + +$ErrorActionPreference = "Continue" +$SubscriptionId = Read-Host("Enter Subscription ID") +$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId + +if($setSubscriptionContext -ne $null) +{ + $getAllVMInSubscription = Get-AzVM + $outputContent = @() + + foreach ($vmobject in $getAllVMInSubscription) + { + $vm_OS = "" + if ($vmobject.OSProfile.WindowsConfiguration -eq $null) + { + $vm_OS = "Linux" + } + else + { + $vm_OS = "Windows" + } + + $vmInstanceView = Get-AzVM -ResourceGroupName $vmobject.ResourceGroupName -Name $vmobject.Name -Status + + $isVMADEEncrypted = $false + $isStoppedVM = $false + $adeVersion = "" + + #Find ADE extension version if ADE extension is installed + $vmExtensions = $vmInstanceView.Extensions + foreach ($extension in $vmExtensions) + { + if ($extension.Name -like "azurediskencryption*") + { + $adeVersion = $extension.TypeHandlerVersion + $isVMADEEncrypted = $true + break; + } + } + + #Look for encryption settings on disks. This applies to VMs that are in deallocated state + #Extension version information is unavailable for stopped VMs + if ($isVMADEEncrypted -eq $false) + { + $disks = $vmInstanceView.Disks + foreach ($diskObject in $disks) + { + if ($diskObject.EncryptionSettings -ne $null) + { + $isStoppedEncryptedVM = $true + break; + } + } + } + + if ($isVMADEEncrypted) + { + #Prepare output content for single pass VMs + if ((($vm_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vm_OS -eq "Linux") -and ($adeVersion -like "1.*"))) + { + $results = @{ + VMName = $vmobject.Name + ResourceGroupName = $vmobject.ResourceGroupName + VM_OS = $vm_OS + ADE_Version = $adeVersion + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VM " $vmobject.Name + } + } + elseif ($isStoppedEncryptedVM) + { + $results = @{ + VMName = $vmobject.Name + ResourceGroupName = $vmobject.ResourceGroupName + VM_OS = $vm_OS + ADE_Version = "Not Available" + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VM. ADE version = Not available " $vmobject.Name + } + } + + #Write to output file + $filePath = ".\" + $SubscriptionId + "_AdeVMInfo.csv" + $outputContent | export-csv -Path $filePath -NoTypeInformation } \ No newline at end of file diff --git a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 index a3526e45125f..6618f1af780d 100644 --- a/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 +++ b/src/Compute/Compute/Extension/AzureDiskEncryption/Scripts/Find_1passAdeVersion_VMSS.ps1 @@ -1,92 +1,92 @@ -<# -READ ME: -This script finds Windows and Linux Virtual Machine Scale Sets encrypted with single pass ADE in all resource groups present in a subscription. -INPUT: -Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx -OUTPUT: -A .csv file with file name "__AdeVMSSInfo.csv" is created in the same working directory. -Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMSS. -#> - -$ErrorActionPreference = "Continue" -$SubscriptionId = Read-Host("Enter Subscription ID") -$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId - -if($setSubscriptionContext -ne $null) -{ - $getAllVMSSInSubscription = Get-AzVmss - $outputContent = @() - - foreach ($vmssobject in $getAllVMSSInSubscription) - { - $vmssModel = Get-AzVmss -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name - if ($vmssModel.VirtualMachineProfile.OsProfile.WindowsConfiguration -eq $null) - { - $vmss_OS = "Linux" - } - else - { - $vmss_OS = "Windows" - } - - $isVMSSADEEncrypted = $false - $adeVersion = "" - - #find if VMSS has ADE extension installed - $vmssExtensions = $vmssObject.VirtualMachineProfile.ExtensionProfile.Extensions - foreach ($extension in $vmssExtensions) - { - if ($extension.Type -like "azurediskencryption*") - { - $isVMSSADEEncrypted = $true - break; - } - } - - #find ADE extension version if VMSS has ADE installed. - if ($isVMSSADEEncrypted) - { - $vmssInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView - $vmssInstanceId = $vmssInstanceView[0].InstanceId - $vmssVMInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView -InstanceId $vmssInstanceId - - $vmssExtensions = $vmssVMInstanceView.Extensions - foreach ($extension in $vmssExtensions) - { - if ($extension.Type -like "Microsoft.Azure.Security.Azurediskencryption*") - { - $adeVersion = $extension.TypeHandlerVersion - break; - } - } - - #Prepare output content for single pass VMSS - if ((($vmss_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vmss_OS -eq "Linux") -and ($adeVersion -like "1.*"))) - { - $results = @{ - VMSSName = $vmssobject.Name - ResourceGroupName = $vmssobject.ResourceGroupName - VMSS_OS = $vmss_OS - ADE_Version = $adeVersion - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VMSS" $vmssobject.Name - } - elseif ([string]::IsNullOrEmpty($adeVersion)) - { - $results = @{ - VMSSName = $vmssobject.Name - ResourceGroupName = $vmssobject.ResourceGroupName - VMSS_OS = $vmss_OS - ADE_Version = "Not Available" - } - $outputContent += New-Object PSObject -Property $results - Write-Host "Added details for encrypted VMSS. ADE version = Not available" $vmssobject.Name - } - } - } - - #Write to output file - $filePath = ".\" + $SubscriptionId + "_AdeVMSSInfo.csv" - $outputContent | export-csv -Path $filePath -NoTypeInformation +<# +READ ME: +This script finds Windows and Linux Virtual Machine Scale Sets encrypted with single pass ADE in all resource groups present in a subscription. +INPUT: +Enter the subscription ID of the subscription. DO NOT remove hyphens. Example: 759532d8-9991-4d04-878f-xxxxxxxxxxxx +OUTPUT: +A .csv file with file name "__AdeVMSSInfo.csv" is created in the same working directory. +Note: If the ADE_Version field = "Not Available" in the output, it means that the VM is encrypted but the extension version couldn't be found. Please check the version manually for these VMSS. +#> + +$ErrorActionPreference = "Continue" +$SubscriptionId = Read-Host("Enter Subscription ID") +$setSubscriptionContext = Set-AzContext -SubscriptionId $SubscriptionId + +if($setSubscriptionContext -ne $null) +{ + $getAllVMSSInSubscription = Get-AzVmss + $outputContent = @() + + foreach ($vmssobject in $getAllVMSSInSubscription) + { + $vmssModel = Get-AzVmss -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name + if ($vmssModel.VirtualMachineProfile.OsProfile.WindowsConfiguration -eq $null) + { + $vmss_OS = "Linux" + } + else + { + $vmss_OS = "Windows" + } + + $isVMSSADEEncrypted = $false + $adeVersion = "" + + #find if VMSS has ADE extension installed + $vmssExtensions = $vmssObject.VirtualMachineProfile.ExtensionProfile.Extensions + foreach ($extension in $vmssExtensions) + { + if ($extension.Type -like "azurediskencryption*") + { + $isVMSSADEEncrypted = $true + break; + } + } + + #find ADE extension version if VMSS has ADE installed. + if ($isVMSSADEEncrypted) + { + $vmssInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView + $vmssInstanceId = $vmssInstanceView[0].InstanceId + $vmssVMInstanceView = Get-AzVmssVM -ResourceGroupName $vmssobject.ResourceGroupName -VMScaleSetName $vmssobject.Name -InstanceView -InstanceId $vmssInstanceId + + $vmssExtensions = $vmssVMInstanceView.Extensions + foreach ($extension in $vmssExtensions) + { + if ($extension.Type -like "Microsoft.Azure.Security.Azurediskencryption*") + { + $adeVersion = $extension.TypeHandlerVersion + break; + } + } + + #Prepare output content for single pass VMSS + if ((($vmss_OS -eq "Windows") -and ($adeVersion -like "2.*")) -or (($vmss_OS -eq "Linux") -and ($adeVersion -like "1.*"))) + { + $results = @{ + VMSSName = $vmssobject.Name + ResourceGroupName = $vmssobject.ResourceGroupName + VMSS_OS = $vmss_OS + ADE_Version = $adeVersion + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VMSS" $vmssobject.Name + } + elseif ([string]::IsNullOrEmpty($adeVersion)) + { + $results = @{ + VMSSName = $vmssobject.Name + ResourceGroupName = $vmssobject.ResourceGroupName + VMSS_OS = $vmss_OS + ADE_Version = "Not Available" + } + $outputContent += New-Object PSObject -Property $results + Write-Host "Added details for encrypted VMSS. ADE version = Not available" $vmssobject.Name + } + } + } + + #Write to output file + $filePath = ".\" + $SubscriptionId + "_AdeVMSSInfo.csv" + $outputContent | export-csv -Path $filePath -NoTypeInformation } \ No newline at end of file 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..81452d71f9b1 --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.csproj @@ -0,0 +1,43 @@ + + + + 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 + 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..755ab01bf1a9 --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.format.ps1xml @@ -0,0 +1,2381 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AppPlatformIdentity + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.AppPlatformIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AppName + + + BindingName + + + CertificateName + + + DeploymentName + + + DomainName + + + Location + + + ResourceGroupName + + + ServiceName + + + SubscriptionId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersions + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersions + + + + + + + + + + + + Java + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResource + + + + + + + + + + + + + + + + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActiveDeploymentName + + + CreatedTime + + + EnableEndToEndTl + + + Fqdn + + + HttpsOnly + + + ProvisioningState + + + Public + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AvailableOperations + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AvailableOperations + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + GeneratedProperty + + + Key + + + ResourceId + + + ResourceName + + + ResourceType + + + UpdatedAt + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivateDate + + + CertVersion + + + DnsName + + + ExpirationDate + + + IssuedDate + + + Issuer + + + KeyVaultCertName + + + SubjectName + + + Thumbprint + + + VaultUri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CloudErrorBody + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CloudErrorBody + + + + + + + + + + + + + + + + + + Code + + + Message + + + Target + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourceProperties + + + + + + + + + + + + + + + + + + ProvisioningState + + + ServiceId + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitProperty + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitProperty + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HostKey + + + HostKeyAlgorithm + + + Label + + + Password + + + PrivateKey + + + SearchPath + + + StrictHostKeyChecking + + + Uri + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsErrorRecord + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsErrorRecord + + + + + + + + + + + + + + + + + + Message + + + Name + + + Uri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsValidateResult + + + + + + + + + + + + IsValid + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainProperties + + + + + + + + + + + + + + + + + + AppName + + + CertName + + + Thumbprint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidatePayload + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidatePayload + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidateResult + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidateResult + + + + + + + + + + + + + + + IsValid + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstance + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstance + + + + + + + + + + + + + + + + + + + + + + + + DiscoveryStatus + + + Name + + + Reason + + + StartTime + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceProperties + + + + + + + + + + + + + + + + + + + + + + + + Active + + + AppName + + + CreatedTime + + + ProvisioningState + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettings + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettings + + + + + + + + + + + + + + + + + + + + + + + + Cpu + + + JvmOption + + + MemoryInGb + + + NetCoreMainEntryPath + + + RuntimeVersion + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariables + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariables + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Error + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Error + + + + + + + + + + + + + + + Code + + + Message + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepository + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepository + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HostKey + + + HostKeyAlgorithm + + + Label + + + Name + + + Password + + + Pattern + + + PrivateKey + + + SearchPath + + + StrictHostKeyChecking + + + Uri + + + Username + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogFileUrlResponse + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogFileUrlResponse + + + + + + + + + + + + Url + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecification + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecification + + + + + + + + + + + + + + + + + + BlobDuration + + + DisplayName + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityProperties + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricDimension + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricDimension + + + + + + + + + + + + + + + DisplayName + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricSpecification + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricSpecification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AggregationType + + + Category + + + DisplayDescription + + + DisplayName + + + FillGapWithZero + + + Name + + + SupportedAggregationType + + + SupportedTimeGrainType + + + Unit + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingProperties + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingProperties + + + + + + + + + + + + + + + + + + + + + AppInsightsInstrumentationKey + + + AppInsightsSamplingRate + + + ProvisioningState + + + TraceEnabled + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailability + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailability + + + + + + + + + + + + + + + + + + Message + + + NameAvailable + + + Reason + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailabilityParameters + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailabilityParameters + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfile + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfile + + + + + + + + + + + + + + + + + + + + + + + + AppNetworkResourceGroup + + + AppSubnetId + + + ServiceCidr + + + ServiceRuntimeNetworkResourceGroup + + + ServiceRuntimeSubnetId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPs + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPs + + + + + + + + + + + + PublicIP + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDetail + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDetail + + + + + + + + + + + + + + + + + + IsDataAction + + + Name + + + Origin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDisplay + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDisplay + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDisk + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDisk + + + + + + + + + + + + + + + + + + MountPath + + + SizeInGb + + + UsedInGb + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ProxyResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ProxyResource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RegenerateTestKeyRequestPayload + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RegenerateTestKeyRequestPayload + + + + + + + + + + + + KeyType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTraffic + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTraffic + + + + + + + + + + + + + + + + + + + + + + + + Direction + + + Fqdn + + + IP + + + Port + + + Protocol + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Resource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Resource + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequests + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequests + + + + + + + + + + + + + + + Cpu + + + Memory + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSku + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSku + + + + + + + + + + + + + + + + + + + + + Location + + + Name + + + ResourceType + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuCapabilities + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuCapabilities + + + + + + + + + + + + + + + Name + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuCollection + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuCollection + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuLocationInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuLocationInfo + + + + + + + + + + + + + + + Location + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionInfo + + + + + + + + + + + + + + + Location + + + Zone + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictions + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictions + + + + + + + + + + + + + + + + + + ReasonCode + + + Type + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuZoneDetails + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuZoneDetails + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceUploadDefinition + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceUploadDefinition + + + + + + + + + + + + + + + RelativePath + + + UploadUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResource + + + + + + + + + + + + + + + + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResourceList + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResourceList + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Sku + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Sku + + + + + + + + + + + + + + + + + + Capacity + + + Name + + + Tier + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuCapacity + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuCapacity + + + + + + + + + + + + + + + + + + + + + Default + + + Maximum + + + Minimum + + + ScaleType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SupportedRuntimeVersion + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SupportedRuntimeVersion + + + + + + + + + + + + + + + + + + Platform + + + Value + + + Version + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDisk + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDisk + + + + + + + + + + + + + + + MountPath + + + SizeInGb + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TestKeys + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TestKeys + + + + + + + + + + + + + + + + + + + + + + + + Enabled + + + PrimaryKey + + + PrimaryTestEndpoint + + + SecondaryKey + + + SecondaryTestEndpoint + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResource + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResource + + + + + + + + + + + + + + + + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTags + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfo + + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfo + + + + + + + + + + + + + + + + + + + + + ArtifactSelector + + + RelativePath + + + Type + + + Version + + + + + + + + \ 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..2dfbcc39de82 --- /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..61239b13a154 --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = '93734d69-1ed9-46fd-935d-2bcc8cb3faef' + 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-AzAppPlatformServiceTestEndpoint', 'Enable-AzAppPlatformServiceTestEndpoint', 'Get-AzAppPlatformApp', 'Get-AzAppPlatformAppResourceUploadUrl', 'Get-AzAppPlatformBinding', 'Get-AzAppPlatformCertificate', 'Get-AzAppPlatformConfigServer', 'Get-AzAppPlatformCustomDomain', 'Get-AzAppPlatformDeployment', 'Get-AzAppPlatformDeploymentLogFileUrl', 'Get-AzAppPlatformMonitoringSetting', 'Get-AzAppPlatformRuntimeVersion', 'Get-AzAppPlatformService', 'Get-AzAppPlatformServiceTestKey', 'Get-AzAppPlatformSku', 'New-AzAppPlatformApp', 'New-AzAppPlatformBinding', 'New-AzAppPlatformCertificate', 'New-AzAppPlatformCustomDomain', 'New-AzAppPlatformDeployment', 'New-AzAppPlatformService', 'New-AzAppPlatformServiceTestKey', 'Remove-AzAppPlatformApp', 'Remove-AzAppPlatformBinding', 'Remove-AzAppPlatformCertificate', 'Remove-AzAppPlatformCustomDomain', 'Remove-AzAppPlatformDeployment', 'Remove-AzAppPlatformService', 'Restart-AzAppPlatformDeployment', 'Start-AzAppPlatformDeployment', 'Stop-AzAppPlatformDeployment', 'Test-AzAppPlatformAppDomain', 'Test-AzAppPlatformConfigServer', '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..fe9706e1f076 --- /dev/null +++ b/swaggerci/appplatform/Az.AppPlatform.psm1 @@ -0,0 +1,109 @@ +# region Generated + # ---------------------------------------------------------------------------------- + # + # 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. + # ---------------------------------------------------------------------------------- + # Load required Az.Accounts module + $accountsName = 'Az.Accounts' + $accountsModule = Get-Module -Name $accountsName + if(-not $accountsModule) { + $localAccountsPath = Join-Path $PSScriptRoot 'generated/modules' + if(Test-Path -Path $localAccountsPath) { + $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 + if($localAccounts) { + $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru + } + } + if(-not $accountsModule) { + $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.2.3' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.2.3 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. For installation instructions, please see: https://docs.microsoft.com/en-us/powershell/azure/install-az-ps" -ErrorAction Stop + } elseif (($accountsModule.Version -lt [System.Version]'2.2.3') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.2.3 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop + } + Write-Information "Loaded Module '$($accountsModule.Name)'" + + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.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 + + # 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 +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 +} \ No newline at end of file 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..67147de6f408 --- /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 fundemental 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 propegated to reference documentation via [help comments](https://docs.microsoft.com/en-us/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..f8a6ccd58780 --- /dev/null +++ b/swaggerci/appplatform/docs/Az.AppPlatform.md @@ -0,0 +1,136 @@ +--- +Module Name: Az.AppPlatform +Module Guid: 93734d69-1ed9-46fd-935d-2bcc8cb3faef +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-AzAppPlatformServiceTestEndpoint](Disable-AzAppPlatformServiceTestEndpoint.md) +Disable test endpoint functionality for a Service. + +### [Enable-AzAppPlatformServiceTestEndpoint](Enable-AzAppPlatformServiceTestEndpoint.md) +Enable test endpoint functionality for a Service. + +### [Get-AzAppPlatformApp](Get-AzAppPlatformApp.md) +Get an App 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-AzAppPlatformCertificate](Get-AzAppPlatformCertificate.md) +Get the certificate resource. + +### [Get-AzAppPlatformConfigServer](Get-AzAppPlatformConfigServer.md) +Get the config server and its properties. + +### [Get-AzAppPlatformCustomDomain](Get-AzAppPlatformCustomDomain.md) +Get the custom domain of one lifecycle application. + +### [Get-AzAppPlatformDeployment](Get-AzAppPlatformDeployment.md) +Get a Deployment and its properties. + +### [Get-AzAppPlatformDeploymentLogFileUrl](Get-AzAppPlatformDeploymentLogFileUrl.md) +Get deployment log file URL + +### [Get-AzAppPlatformMonitoringSetting](Get-AzAppPlatformMonitoringSetting.md) +Get the Monitoring Setting and its properties. + +### [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-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. + +### [New-AzAppPlatformApp](New-AzAppPlatformApp.md) +Create a new App or update an exiting App. + +### [New-AzAppPlatformBinding](New-AzAppPlatformBinding.md) +Create a new Binding or update an exiting Binding. + +### [New-AzAppPlatformCertificate](New-AzAppPlatformCertificate.md) +Create or update certificate resource. + +### [New-AzAppPlatformCustomDomain](New-AzAppPlatformCustomDomain.md) +Create or update custom domain of one lifecycle application. + +### [New-AzAppPlatformDeployment](New-AzAppPlatformDeployment.md) +Create a new Deployment or update an exiting Deployment. + +### [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. + +### [Remove-AzAppPlatformApp](Remove-AzAppPlatformApp.md) +Operation to delete an App. + +### [Remove-AzAppPlatformBinding](Remove-AzAppPlatformBinding.md) +Operation to delete a Binding. + +### [Remove-AzAppPlatformCertificate](Remove-AzAppPlatformCertificate.md) +Delete the certificate resource. + +### [Remove-AzAppPlatformCustomDomain](Remove-AzAppPlatformCustomDomain.md) +Delete the custom domain of one lifecycle application. + +### [Remove-AzAppPlatformDeployment](Remove-AzAppPlatformDeployment.md) +Operation to delete a Deployment. + +### [Remove-AzAppPlatformService](Remove-AzAppPlatformService.md) +Operation to delete a Service. + +### [Restart-AzAppPlatformDeployment](Restart-AzAppPlatformDeployment.md) +Restart the deployment. + +### [Start-AzAppPlatformDeployment](Start-AzAppPlatformDeployment.md) +Start the deployment. + +### [Stop-AzAppPlatformDeployment](Stop-AzAppPlatformDeployment.md) +Stop the deployment. + +### [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-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-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..c86ed6db68e1 --- /dev/null +++ b/swaggerci/appplatform/docs/Disable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,209 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..b41dcd684060 --- /dev/null +++ b/swaggerci/appplatform/docs/Enable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,194 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..735d637c98b3 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformApp.md @@ -0,0 +1,199 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..1bfc000722b6 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformAppResourceUploadUrl.md @@ -0,0 +1,209 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..2d67aac8a014 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformBinding.md @@ -0,0 +1,198 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..aad52597beb2 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformCertificate.md @@ -0,0 +1,184 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..fb54352b3e32 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformConfigServer.md @@ -0,0 +1,163 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..96c57dc88aad --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformCustomDomain.md @@ -0,0 +1,199 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..878dcacfca4b --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDeployment.md @@ -0,0 +1,220 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..7f358992e852 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformDeploymentLogFileUrl.md @@ -0,0 +1,240 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..242c059018b6 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformMonitoringSetting.md @@ -0,0 +1,163 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..cee551c14228 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformRuntimeVersion.md @@ -0,0 +1,73 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### 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.Api20210601Preview.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..7d5faf3133cd --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformService.md @@ -0,0 +1,173 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..4a95b1aab53a --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformServiceTestKey.md @@ -0,0 +1,152 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +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.Api20210601Preview.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..df42290345c5 --- /dev/null +++ b/swaggerci/appplatform/docs/Get-AzAppPlatformSku.md @@ -0,0 +1,89 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.Api20210601Preview.IResourceSku + +## 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..3cfed6a6e45d --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformApp.md @@ -0,0 +1,396 @@ +--- +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 ] [-ActiveDeploymentName ] [-EnableEndToEndTl] [-Fqdn ] [-HttpsOnly] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-Location ] [-PersistentDiskMountPath ] [-PersistentDiskSizeInGb ] [-Public] + [-TemporaryDiskMountPath ] [-TemporaryDiskSizeInGb ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create a new App or update an exiting App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ActiveDeploymentName +Name of the active deployment of the App + +```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 +``` + +### -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 +``` + +### -Fqdn +Fully qualified dns Name. + +```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 +``` + +### -IdentityPrincipalId +Principal Id + +```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 + +```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 +``` + +### -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 +``` + +### -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.Api20210601Preview.IAppResource + +## 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..8ad161ec46ad --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformBinding.md @@ -0,0 +1,258 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.IBindingResource + +## 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..e8dd20aa9233 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformCertificate.md @@ -0,0 +1,243 @@ +--- +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 ] [-CertVersion ] [-KeyVaultCertName ] [-VaultUri ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Create or update certificate resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 +``` + +### -CertVersion +The certificate version of key vault. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -KeyVaultCertName +The certificate name of key vault. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -ResourceGroupName +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 +``` + +### -VaultUri +The vault uri of user key vault. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.Api20210601Preview.ICertificateResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..0dc67727fdd0 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformCustomDomain.md @@ -0,0 +1,243 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.ICustomDomainResource + +## 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..611eb683554c --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformDeployment.md @@ -0,0 +1,455 @@ +--- +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 ] [-DeploymentSettingCpu ] + [-DeploymentSettingEnvironmentVariable ] [-DeploymentSettingJvmOption ] + [-DeploymentSettingMemoryInGb ] [-DeploymentSettingNetCoreMainEntryPath ] + [-DeploymentSettingRuntimeVersion ] [-ResourceRequestCpu ] + [-ResourceRequestMemory ] [-SkuCapacity ] [-SkuName ] [-SkuTier ] + [-SourceArtifactSelector ] [-SourceRelativePath ] [-SourceType ] + [-SourceVersion ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create a new Deployment or update an exiting Deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 +``` + +### -DeploymentSettingCpu +Required CPU. +This should be 1 for Basic tier, and in range [1, 4] for Standard tier. +This is deprecated starting from API version 2021-06-01-preview. +Please use the resourceRequests field to set the CPU size. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingEnvironmentVariable +Collection of environment variables + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingJvmOption +JVM parameter + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingMemoryInGb +Required Memory size in GB. +This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. +This is deprecated starting from API version 2021-06-01-preview. +Please use the resourceRequests field to set the the memory size. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingNetCoreMainEntryPath +The path to the .NET executable relative to zip root + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingRuntimeVersion +Runtime version + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion +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 +``` + +### -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. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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. + +```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 +``` + +### -SourceArtifactSelector +Selector for the artifact to be used for the deployment for multi-module projects. +This should bethe relative path to the target module/project. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceRelativePath +Relative path of the storage which stores 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 +``` + +### -SourceType +Type of the source uploaded + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType +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.Api20210601Preview.IDeploymentResource + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/appplatform/docs/New-AzAppPlatformService.md b/swaggerci/appplatform/docs/New-AzAppPlatformService.md new file mode 100644 index 000000000000..39fc5fbdaca5 --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformService.md @@ -0,0 +1,336 @@ +--- +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 ] + [-Location ] [-NetworkProfileAppNetworkResourceGroup ] [-NetworkProfileAppSubnetId ] + [-NetworkProfileServiceCidr ] [-NetworkProfileServiceRuntimeNetworkResourceGroup ] + [-NetworkProfileServiceRuntimeSubnetId ] [-SkuCapacity ] [-SkuName ] + [-SkuTier ] [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Create a new Service or update an exiting Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -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 of Azure Spring Cloud 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 Azure Spring Cloud Apps + +```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 Cloud 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 Cloud 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 Cloud 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 +``` + +### -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.Api20210601Preview.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..0745e124c5dd --- /dev/null +++ b/swaggerci/appplatform/docs/New-AzAppPlatformServiceTestKey.md @@ -0,0 +1,244 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.IRegenerateTestKeyRequestPayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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/Remove-AzAppPlatformApp.md b/swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md new file mode 100644 index 000000000000..c6e11282dbe6 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformApp.md @@ -0,0 +1,255 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..7928c97aaa02 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformBinding.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..9edf0d01f16a --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformCertificate.md @@ -0,0 +1,255 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..c7d5fc9242cd --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformCustomDomain.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..c54ee8d6f1fe --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformDeployment.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..1862ea1052c2 --- /dev/null +++ b/swaggerci/appplatform/docs/Remove-AzAppPlatformService.md @@ -0,0 +1,239 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..f6944b50e15c --- /dev/null +++ b/swaggerci/appplatform/docs/Restart-AzAppPlatformDeployment.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..ab0318efb67d --- /dev/null +++ b/swaggerci/appplatform/docs/Start-AzAppPlatformDeployment.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..e3cb02941517 --- /dev/null +++ b/swaggerci/appplatform/docs/Stop-AzAppPlatformDeployment.md @@ -0,0 +1,270 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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-AzAppPlatformAppDomain.md b/swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md new file mode 100644 index 000000000000..2e8d5261d670 --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformAppDomain.md @@ -0,0 +1,259 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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.Api20210601Preview.ICustomDomainValidatePayload + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..34b33d253c1a --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformConfigServer.md @@ -0,0 +1,451 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IConfigServerSettings + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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-AzAppPlatformServiceNameAvailability.md b/swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md new file mode 100644 index 000000000000..bde673a07ffd --- /dev/null +++ b/swaggerci/appplatform/docs/Test-AzAppPlatformServiceNameAvailability.md @@ -0,0 +1,244 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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.Api20210601Preview.INameAvailabilityParameters + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..6a49ca793896 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformApp.md @@ -0,0 +1,442 @@ +--- +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 ] [-ActiveDeploymentName ] [-EnableEndToEndTl] [-Fqdn ] [-HttpsOnly] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-Location ] [-PersistentDiskMountPath ] [-PersistentDiskSizeInGb ] [-Public] + [-TemporaryDiskMountPath ] [-TemporaryDiskSizeInGb ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformApp -InputObject [-ActiveDeploymentName ] + [-EnableEndToEndTl] [-Fqdn ] [-HttpsOnly] [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-Location ] + [-PersistentDiskMountPath ] [-PersistentDiskSizeInGb ] [-Public] + [-TemporaryDiskMountPath ] [-TemporaryDiskSizeInGb ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Operation to update an exiting App. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ActiveDeploymentName +Name of the active deployment of the App + +```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 +``` + +### -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 +``` + +### -Fqdn +Fully qualified dns Name. + +```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 +``` + +### -IdentityPrincipalId +Principal Id + +```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 + +```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 +``` + +### -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 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 +``` + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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-AzAppPlatformBinding.md b/swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md new file mode 100644 index 000000000000..d22a0a7826cb --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformBinding.md @@ -0,0 +1,301 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..061f3dcd1576 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformConfigServerPatch.md @@ -0,0 +1,427 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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.Api20210601Preview.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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..38b91313aa1c --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformCustomDomain.md @@ -0,0 +1,286 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..f07c88a7bba1 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformDeployment.md @@ -0,0 +1,503 @@ +--- +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 ] [-DeploymentSettingCpu ] + [-DeploymentSettingEnvironmentVariable ] [-DeploymentSettingJvmOption ] + [-DeploymentSettingMemoryInGb ] [-DeploymentSettingNetCoreMainEntryPath ] + [-DeploymentSettingRuntimeVersion ] [-ResourceRequestCpu ] + [-ResourceRequestMemory ] [-SkuCapacity ] [-SkuName ] [-SkuTier ] + [-SourceArtifactSelector ] [-SourceRelativePath ] [-SourceType ] + [-SourceVersion ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformDeployment -InputObject [-DeploymentSettingCpu ] + [-DeploymentSettingEnvironmentVariable ] [-DeploymentSettingJvmOption ] + [-DeploymentSettingMemoryInGb ] [-DeploymentSettingNetCoreMainEntryPath ] + [-DeploymentSettingRuntimeVersion ] [-ResourceRequestCpu ] + [-ResourceRequestMemory ] [-SkuCapacity ] [-SkuName ] [-SkuTier ] + [-SourceArtifactSelector ] [-SourceRelativePath ] [-SourceType ] + [-SourceVersion ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Operation to update an exiting Deployment. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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 +``` + +### -DeploymentSettingCpu +Required CPU. +This should be 1 for Basic tier, and in range [1, 4] for Standard tier. +This is deprecated starting from API version 2021-06-01-preview. +Please use the resourceRequests field to set the CPU size. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingEnvironmentVariable +Collection of environment variables + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingJvmOption +JVM parameter + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingMemoryInGb +Required Memory size in GB. +This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. +This is deprecated starting from API version 2021-06-01-preview. +Please use the resourceRequests field to set the the memory size. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingNetCoreMainEntryPath +The path to the .NET executable relative to zip root + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeploymentSettingRuntimeVersion +Runtime version + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion +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 +``` + +### -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. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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. + +```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 +``` + +### -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 +``` + +### -SourceArtifactSelector +Selector for the artifact to be used for the deployment for multi-module projects. +This should bethe relative path to the target module/project. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SourceRelativePath +Relative path of the storage which stores 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 +``` + +### -SourceType +Type of the source uploaded + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType +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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..f45c69e9ddd3 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformMonitoringSettingPatch.md @@ -0,0 +1,304 @@ +--- +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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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..366b6aa6ea90 --- /dev/null +++ b/swaggerci/appplatform/docs/Update-AzAppPlatformService.md @@ -0,0 +1,382 @@ +--- +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 ] + [-Location ] [-NetworkProfileAppNetworkResourceGroup ] [-NetworkProfileAppSubnetId ] + [-NetworkProfileServiceCidr ] [-NetworkProfileServiceRuntimeNetworkResourceGroup ] + [-NetworkProfileServiceRuntimeSubnetId ] [-SkuCapacity ] [-SkuName ] + [-SkuTier ] [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzAppPlatformService -InputObject [-Location ] + [-NetworkProfileAppNetworkResourceGroup ] [-NetworkProfileAppSubnetId ] + [-NetworkProfileServiceCidr ] [-NetworkProfileServiceRuntimeNetworkResourceGroup ] + [-NetworkProfileServiceRuntimeSubnetId ] [-SkuCapacity ] [-SkuName ] + [-SkuTier ] [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Operation to update an exiting Service. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.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 +``` + +### -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 of Azure Spring Cloud 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 Azure Spring Cloud Apps + +```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 Cloud 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 Cloud 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 Cloud 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 +``` + +### -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.Api20210601Preview.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 + - `[AppName ]`: The name of the App resource. + - `[BindingName ]`: The name of the Binding resource. + - `[CertificateName ]`: The name of the certificate resource. + - `[DeploymentName ]`: The name of the Deployment resource. + - `[DomainName ]`: The name of the custom domain resource. + - `[Id ]`: Resource identity path + - `[Location ]`: the region + - `[ResourceGroupName ]`: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + - `[ServiceName ]`: The name of the Service 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/readme.md b/swaggerci/appplatform/docs/readme.md new file mode 100644 index 000000000000..f2852f51092c --- /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 overriden 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/en-us/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/examples/Disable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Disable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md b/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Enable-AzAppPlatformServiceTestEndpoint.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformApp.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md b/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformAppResourceUploadUrl.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformBinding.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformCertificate.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformConfigServer.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformCustomDomain.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformDeploymentLogFileUrl.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md b/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformMonitoringSetting.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md b/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformRuntimeVersion.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformService.md b/swaggerci/appplatform/examples/Get-AzAppPlatformService.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformService.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformServiceTestKey.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md b/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Get-AzAppPlatformSku.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformApp.md b/swaggerci/appplatform/examples/New-AzAppPlatformApp.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformApp.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformBinding.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformCertificate.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformCustomDomain.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformService.md b/swaggerci/appplatform/examples/New-AzAppPlatformService.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformService.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md b/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/New-AzAppPlatformServiceTestKey.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformApp.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformBinding.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformCertificate.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformCustomDomain.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md b/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Remove-AzAppPlatformService.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Restart-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Start-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Stop-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md b/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformAppDomain.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformConfigServer.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md b/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Test-AzAppPlatformServiceNameAvailability.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md b/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformApp.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md b/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformBinding.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md b/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformConfigServerPatch.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md b/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformCustomDomain.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md b/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformDeployment.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md b/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformMonitoringSettingPatch.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/examples/Update-AzAppPlatformService.md b/swaggerci/appplatform/examples/Update-AzAppPlatformService.md new file mode 100644 index 000000000000..093355d11d50 --- /dev/null +++ b/swaggerci/appplatform/examples/Update-AzAppPlatformService.md @@ -0,0 +1,18 @@ +### Example 1: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +PS C:\> {{ Add code here }} + +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/appplatform/export-surface.ps1 b/swaggerci/appplatform/export-surface.ps1 new file mode 100644 index 000000000000..2afd57f7ae5d --- /dev/null +++ b/swaggerci/appplatform/export-surface.ps1 @@ -0,0 +1,40 @@ +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- +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-AzAppPlatformServiceTestEndpoint.ps1 b/swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 new file mode 100644 index 000000000000..e36a2c57d1c0 --- /dev/null +++ b/swaggerci/appplatform/exports/Disable-AzAppPlatformServiceTestEndpoint.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable test endpoint functionality for a Service. +.Description +Disable test endpoint functionality for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 b/swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 new file mode 100644 index 000000000000..b2f911f12dfe --- /dev/null +++ b/swaggerci/appplatform/exports/Enable-AzAppPlatformServiceTestEndpoint.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Enable test endpoint functionality for a Service. +.Description +Enable test endpoint functionality for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..58c41cacd2bb --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformApp.ps1 @@ -0,0 +1,189 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an App and its properties. +.Description +Get an App and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 new file mode 100644 index 000000000000..96da44e8eefe --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformAppResourceUploadUrl.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..0299f7901299 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformBinding.ps1 @@ -0,0 +1,189 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Binding and its properties. +.Description +Get a Binding and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..53744fdbc78b --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformCertificate.ps1 @@ -0,0 +1,182 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the certificate resource. +.Description +Get the certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformConfigServer.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 new file mode 100644 index 000000000000..e46dfc06c4c6 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformConfigServer.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the config server and its properties. +.Description +Get the config server and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..aaba8fadc8d9 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,188 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the custom domain of one lifecycle application. +.Description +Get the custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..5b5eac262e4d --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDeployment.ps1 @@ -0,0 +1,200 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Deployment and its properties. +.Description +Get a Deployment and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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')] + [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 + $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 + } + $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/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 new file mode 100644 index 000000000000..a79554acb1a2 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformDeploymentLogFileUrl.ps1 @@ -0,0 +1,189 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get deployment log file URL +.Description +Get deployment log file URL +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Get-AzAppPlatformMonitoringSetting.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 new file mode 100644 index 000000000000..65cf603dc5d9 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformMonitoringSetting.ps1 @@ -0,0 +1,171 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Monitoring Setting and its properties. +.Description +Get the Monitoring Setting and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformRuntimeVersion.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 new file mode 100644 index 000000000000..83a855d4415f --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformRuntimeVersion.ps1 @@ -0,0 +1,121 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformruntimeversion +#> +function Get-AzAppPlatformRuntimeVersion { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformRuntimeVersion_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/exports/Get-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..8cc37ee683dc --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformService.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Service and its properties. +.Description +Get a Service and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Get-AzAppPlatformServiceTestKey.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 new file mode 100644 index 000000000000..f916157ea196 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformServiceTestKey.ps1 @@ -0,0 +1,145 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List test keys for a Service. +.Description +List test keys for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservicetestkey +#> +function Get-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceTestKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/Get-AzAppPlatformSku.ps1 b/swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 new file mode 100644 index 000000000000..191fb8ef2156 --- /dev/null +++ b/swaggerci/appplatform/exports/Get-AzAppPlatformSku.ps1 @@ -0,0 +1,132 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformsku +#> +function Get-AzAppPlatformSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformSku_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..0c514506e801 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformApp.ps1 @@ -0,0 +1,243 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new App or update an exiting App. +.Description +Create a new App or update an exiting App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapp +#> +function New-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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')] + [System.String] + # Name of the active deployment of the App + ${ActiveDeploymentName}, + + [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.String] + # Fully qualified dns Name. + ${Fqdn}, + + [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 + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id + ${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')] + [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()] + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApp_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..62709c4a6dcb --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformBinding.ps1 @@ -0,0 +1,189 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Binding or update an exiting Binding. +.Description +Create a new Binding or update an exiting Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbinding +#> +function New-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBinding_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..f01cb62e91f9 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformCertificate.ps1 @@ -0,0 +1,182 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update certificate resource. +.Description +Create or update certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcertificate +#> +function New-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 certificate version of key vault. + ${CertVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The certificate name of key vault. + ${KeyVaultCertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The vault uri of user key vault. + ${VaultUri}, + + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..df97f6c42a72 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,181 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update custom domain of one lifecycle application. +.Description +Create or update custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomdomain +#> +function New-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomDomain_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..466f5743889f --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformDeployment.ps1 @@ -0,0 +1,274 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Deployment or update an exiting Deployment. +.Description +Create a new Deployment or update an exiting Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeployment +#> +function New-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Int32] + # Required CPU. + # This should be 1 for Basic tier, and in range [1, 4] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the CPU size. + ${DeploymentSettingCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables]))] + [System.Collections.Hashtable] + # Collection of environment variables + ${DeploymentSettingEnvironmentVariable}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # JVM parameter + ${DeploymentSettingJvmOption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Required Memory size in GB. + # This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the the memory size. + ${DeploymentSettingMemoryInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The path to the .NET executable relative to zip root + ${DeploymentSettingNetCoreMainEntryPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion] + # Runtime version + ${DeploymentSettingRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestMemory}, + + [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] + # Selector for the artifact to be used for the deployment for multi-module projects. + # This should bethe relative path to the target module/project. + ${SourceArtifactSelector}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Relative path of the storage which stores the source + ${SourceRelativePath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType] + # 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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeployment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..9dd8bc8a05f1 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformService.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Service or update an exiting Service. +.Description +Create a new Service or update an exiting Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservice +#> +function New-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Cloud Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Cloud 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 Cloud Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformService_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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/exports/New-AzAppPlatformServiceTestKey.ps1 b/swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 new file mode 100644 index 000000000000..ff9a3ee9b334 --- /dev/null +++ b/swaggerci/appplatform/exports/New-AzAppPlatformServiceTestKey.ps1 @@ -0,0 +1,198 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a test key for a Service. +.Description +Regenerate a test key for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..cfba0c569f48 --- /dev/null +++ b/swaggerci/appplatform/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,8284 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Disable test endpoint functionality for a Service. +.Description +Disable test endpoint functionality for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Enable test endpoint functionality for a Service. +.Description +Enable test endpoint functionality for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an App and its properties. +.Description +Get an App and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Binding and its properties. +.Description +Get a Binding and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the certificate resource. +.Description +Get the certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the config server and its properties. +.Description +Get the config server and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the custom domain of one lifecycle application. +.Description +Get the custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get deployment log file URL +.Description +Get deployment log file URL +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Deployment and its properties. +.Description +Get a Deployment and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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')] + [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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the Monitoring Setting and its properties. +.Description +Get the Monitoring Setting and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformruntimeversion +#> +function Get-AzAppPlatformRuntimeVersion { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformRuntimeVersion_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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List test keys for a Service. +.Description +List test keys for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformservicetestkey +#> +function Get-AzAppPlatformServiceTestKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformServiceTestKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a Service and its properties. +.Description +Get a Service and its properties. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/get-azappplatformsku +#> +function Get-AzAppPlatformSku { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + List = 'Az.AppPlatform.private\Get-AzAppPlatformSku_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new App or update an exiting App. +.Description +Create a new App or update an exiting App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformapp +#> +function New-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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')] + [System.String] + # Name of the active deployment of the App + ${ActiveDeploymentName}, + + [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.String] + # Fully qualified dns Name. + ${Fqdn}, + + [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 + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id + ${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')] + [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()] + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformApp_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Binding or update an exiting Binding. +.Description +Create a new Binding or update an exiting Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformbinding +#> +function New-AzAppPlatformBinding { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformBinding_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update certificate resource. +.Description +Create or update certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcertificate +#> +function New-AzAppPlatformCertificate { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 certificate version of key vault. + ${CertVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The certificate name of key vault. + ${KeyVaultCertName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The vault uri of user key vault. + ${VaultUri}, + + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCertificate_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create or update custom domain of one lifecycle application. +.Description +Create or update custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformcustomdomain +#> +function New-AzAppPlatformCustomDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformCustomDomain_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Deployment or update an exiting Deployment. +.Description +Create a new Deployment or update an exiting Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformdeployment +#> +function New-AzAppPlatformDeployment { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Int32] + # Required CPU. + # This should be 1 for Basic tier, and in range [1, 4] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the CPU size. + ${DeploymentSettingCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables]))] + [System.Collections.Hashtable] + # Collection of environment variables + ${DeploymentSettingEnvironmentVariable}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # JVM parameter + ${DeploymentSettingJvmOption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Required Memory size in GB. + # This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the the memory size. + ${DeploymentSettingMemoryInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The path to the .NET executable relative to zip root + ${DeploymentSettingNetCoreMainEntryPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion] + # Runtime version + ${DeploymentSettingRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestMemory}, + + [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] + # Selector for the artifact to be used for the deployment for multi-module projects. + # This should bethe relative path to the target module/project. + ${SourceArtifactSelector}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Relative path of the storage which stores the source + ${SourceRelativePath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType] + # 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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformDeployment_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a test key for a Service. +.Description +Regenerate a test key for a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create a new Service or update an exiting Service. +.Description +Create a new Service or update an exiting Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource +.Link +https://docs.microsoft.com/en-us/powershell/module/az.appplatform/new-azappplatformservice +#> +function New-AzAppPlatformService { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Cloud Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Cloud 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 Cloud Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [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 + $mapping = @{ + CreateExpanded = 'Az.AppPlatform.private\New-AzAppPlatformService_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete an App. +.Description +Operation to delete an App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Binding. +.Description +Operation to delete a Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the certificate resource. +.Description +Delete the certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the custom domain of one lifecycle application. +.Description +Delete the custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Deployment. +.Description +Operation to delete a Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Service. +.Description +Operation to delete a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Restart the deployment. +.Description +Restart the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Start the deployment. +.Description +Start the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Stop the deployment. +.Description +Stop the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Check if the config server settings are valid. +.Description +Check if the config server settings are valid. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting App. +.Description +Operation to update an exiting App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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-azappplatformapp +#> +function Update-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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')] + [System.String] + # Name of the active deployment of the App + ${ActiveDeploymentName}, + + [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.String] + # Fully qualified dns Name. + ${Fqdn}, + + [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 + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id + ${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')] + [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()] + [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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Binding. +.Description +Operation to update an exiting Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update the config server. +.Description +Update the config server. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update custom domain of one lifecycle application. +.Description +Update custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Deployment. +.Description +Operation to update an exiting Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Int32] + # Required CPU. + # This should be 1 for Basic tier, and in range [1, 4] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the CPU size. + ${DeploymentSettingCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables]))] + [System.Collections.Hashtable] + # Collection of environment variables + ${DeploymentSettingEnvironmentVariable}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # JVM parameter + ${DeploymentSettingJvmOption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Required Memory size in GB. + # This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the the memory size. + ${DeploymentSettingMemoryInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The path to the .NET executable relative to zip root + ${DeploymentSettingNetCoreMainEntryPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion] + # Runtime version + ${DeploymentSettingRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestMemory}, + + [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] + # Selector for the artifact to be used for the deployment for multi-module projects. + # This should bethe relative path to the target module/project. + ${SourceArtifactSelector}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Relative path of the storage which stores the source + ${SourceRelativePath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType] + # 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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update the Monitoring Setting. +.Description +Update the Monitoring Setting. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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 + } +} +} + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Service. +.Description +Operation to update an exiting Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Cloud Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Cloud 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 Cloud Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [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 + $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 + } + $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/exports/Remove-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..4c4a8fa72e0d --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformApp.ps1 @@ -0,0 +1,196 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete an App. +.Description +Operation to delete an App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Remove-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..63d86b69c094 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformBinding.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Binding. +.Description +Operation to delete a Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Remove-AzAppPlatformCertificate.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 new file mode 100644 index 000000000000..92fa5abe3261 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformCertificate.ps1 @@ -0,0 +1,196 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the certificate resource. +.Description +Delete the certificate resource. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Remove-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..cfd43eddf2a1 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,201 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete the custom domain of one lifecycle application. +.Description +Delete the custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Remove-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..df490bf68ab5 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformDeployment.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Deployment. +.Description +Operation to delete a Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Remove-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..185dbd5762a0 --- /dev/null +++ b/swaggerci/appplatform/exports/Remove-AzAppPlatformService.ps1 @@ -0,0 +1,190 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to delete a Service. +.Description +Operation to delete a Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Restart-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..1fa893c75fda --- /dev/null +++ b/swaggerci/appplatform/exports/Restart-AzAppPlatformDeployment.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Restart the deployment. +.Description +Restart the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Start-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..37f1e5074740 --- /dev/null +++ b/swaggerci/appplatform/exports/Start-AzAppPlatformDeployment.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Start the deployment. +.Description +Start the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Stop-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..c38929d817b7 --- /dev/null +++ b/swaggerci/appplatform/exports/Stop-AzAppPlatformDeployment.ps1 @@ -0,0 +1,202 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Stop the deployment. +.Description +Stop the deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output 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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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 + $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 + } + $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/exports/Test-AzAppPlatformAppDomain.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 new file mode 100644 index 000000000000..808afba1e885 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformAppDomain.ps1 @@ -0,0 +1,204 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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/exports/Test-AzAppPlatformConfigServer.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 new file mode 100644 index 000000000000..1b3867f6239b --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformConfigServer.ps1 @@ -0,0 +1,306 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Check if the config server settings are valid. +.Description +Check if the config server settings are valid. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter(ParameterSetName='ValidateExpanded')] + [Parameter(ParameterSetName='ValidateViaIdentityExpanded')] + [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 + $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 + } + $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/exports/Test-AzAppPlatformServiceNameAvailability.ps1 b/swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 new file mode 100644 index 000000000000..fa7408dfb882 --- /dev/null +++ b/swaggerci/appplatform/exports/Test-AzAppPlatformServiceNameAvailability.ps1 @@ -0,0 +1,197 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.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 +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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/exports/Update-AzAppPlatformApp.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 new file mode 100644 index 000000000000..7d2e74bebfca --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformApp.ps1 @@ -0,0 +1,269 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting App. +.Description +Operation to update an exiting App. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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-azappplatformapp +#> +function Update-AzAppPlatformApp { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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')] + [System.String] + # Name of the active deployment of the App + ${ActiveDeploymentName}, + + [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.String] + # Fully qualified dns Name. + ${Fqdn}, + + [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 + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Tenant Id + ${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')] + [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()] + [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 + $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 + } + $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/exports/Update-AzAppPlatformBinding.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 new file mode 100644 index 000000000000..ce1c6626745d --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformBinding.ps1 @@ -0,0 +1,215 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Binding. +.Description +Operation to update an exiting Binding. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Api20210601Preview.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 + $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 + } + $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/exports/Update-AzAppPlatformConfigServerPatch.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 new file mode 100644 index 000000000000..0213a8ecfb9e --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformConfigServerPatch.ps1 @@ -0,0 +1,269 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update the config server. +.Description +Update the config server. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]] + # Repositories of git. + # To construct, see NOTES section for GITPROPERTYREPOSITORY properties and create a hash table. + ${GitPropertyRepository}, + + [Parameter()] + [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 + $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 + } + $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/exports/Update-AzAppPlatformCustomDomain.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 new file mode 100644 index 000000000000..6abfc3352231 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformCustomDomain.ps1 @@ -0,0 +1,207 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update custom domain of one lifecycle application. +.Description +Update custom domain of one lifecycle application. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Update-AzAppPlatformDeployment.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 new file mode 100644 index 000000000000..95cc512ebbb0 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformDeployment.ps1 @@ -0,0 +1,300 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Deployment. +.Description +Operation to update an exiting Deployment. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.Int32] + # Required CPU. + # This should be 1 for Basic tier, and in range [1, 4] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the CPU size. + ${DeploymentSettingCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables]))] + [System.Collections.Hashtable] + # Collection of environment variables + ${DeploymentSettingEnvironmentVariable}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # JVM parameter + ${DeploymentSettingJvmOption}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.Int32] + # Required Memory size in GB. + # This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. + # This is deprecated starting from API version 2021-06-01-preview. + # Please use the resourceRequests field to set the the memory size. + ${DeploymentSettingMemoryInGb}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # The path to the .NET executable relative to zip root + ${DeploymentSettingNetCoreMainEntryPath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion] + # Runtime version + ${DeploymentSettingRuntimeVersion}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestCpu}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # 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. + ${ResourceRequestMemory}, + + [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] + # Selector for the artifact to be used for the deployment for multi-module projects. + # This should bethe relative path to the target module/project. + ${SourceArtifactSelector}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Relative path of the storage which stores the source + ${SourceRelativePath}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType])] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType] + # 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 + $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 + } + $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/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 new file mode 100644 index 000000000000..707c1efa83f8 --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformMonitoringSettingPatch.ps1 @@ -0,0 +1,214 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update the Monitoring Setting. +.Description +Update the Monitoring Setting. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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 + $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 + } + $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/exports/Update-AzAppPlatformService.ps1 b/swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 new file mode 100644 index 000000000000..f1f9d9f6ce5f --- /dev/null +++ b/swaggerci/appplatform/exports/Update-AzAppPlatformService.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Operation to update an exiting Service. +.Description +Operation to update an exiting Service. +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} +.Example +PS C:\> {{ Add code here }} + +{{ Add output here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.IAppPlatformIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [AppName ]: The name of the App resource. + [BindingName ]: The name of the Binding resource. + [CertificateName ]: The name of the certificate resource. + [DeploymentName ]: The name of the Deployment resource. + [DomainName ]: The name of the custom domain resource. + [Id ]: Resource identity path + [Location ]: the region + [ResourceGroupName ]: The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal. + [ServiceName ]: The name of the Service 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.Api20210601Preview.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.String] + # The GEO location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Name of the resource group containing network resources of Azure Spring Cloud Apps + ${NetworkProfileAppNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + ${NetworkProfileAppSubnetId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Azure Spring Cloud 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 Cloud Service Runtime + ${NetworkProfileServiceRuntimeNetworkResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category('Body')] + [System.String] + # Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the service which is a list of key value pairs that describe the resource. + ${Tag}, + + [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 + $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 + } + $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/exports/readme.md b/swaggerci/appplatform/exports/readme.md new file mode 100644 index 000000000000..476403dbab25 --- /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/en-us/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/generate-help.ps1 b/swaggerci/appplatform/generate-help.ps1 new file mode 100644 index 000000000000..eb6126714451 --- /dev/null +++ b/swaggerci/appplatform/generate-help.ps1 @@ -0,0 +1,73 @@ +# ---------------------------------------------------------------------------------- +# +# 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. +# ---------------------------------------------------------------------------------- +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..dca8a20fe61d --- /dev/null +++ b/swaggerci/appplatform/generated/Module.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 +{ + 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 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 ArgumentCompleterDelegate = global::System.Func; + 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 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; } + + /// 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 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. + /// 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) + { + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.HttpPipeline pipeline = null; + BeforeCreatePipeline(invocationInfo, ref pipeline); + pipeline = (pipeline ?? (_handler.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) + { + // set the proxy configuration + _webProxy.Address = proxy; + _webProxy.BypassProxyOnLocal = false; + _webProxy.Credentials = proxyCredential ?.GetNetworkCredential(); + _webProxy.UseDefaultCredentials = proxyUseDefaultCredentials; + _handler.UseProxy = proxy != null; + } + + /// 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..7ecdd882d3c0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/AppPlatformManagementClient.cs @@ -0,0 +1,11879 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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 Cloud + /// + public partial class AppPlatformManagementClient + { + + /// 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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); + } + } + + /// 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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); + } + } + + /// 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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); + } + } + + /// 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 = @"2021-06-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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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(each?.ToString()??global::System.String.Empty) ))) : 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 = @"2021-06-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(each?.ToString()??global::System.String.Empty) ))) : 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 = @"2021-06-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$").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(each?.ToString()??global::System.String.Empty) ))) : 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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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$").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(each?.ToString()??global::System.String.Empty) ))) : 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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 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 = @"2021-06-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$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + 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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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); + } + } + + /// 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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 ) + { + + } + } + + /// + /// 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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 ) + { + + } + } + + /// 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 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 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 = @"2021-06-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,onNoContent,onDefault,eventListener,sender); + } + } + + /// Operation to delete a Service. + /// + /// 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 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 = @"2021-06-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/(?[^/]+)$").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,onNoContent,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// 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 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: azure-async-operation + var _finalUri = _response.GetFirstHeader(@"Azure-AsyncOperation"); + 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); + break; + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + 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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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/(?[^/]+)$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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); + } + } + + /// 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.Api20210601Preview.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 = @"2021-06-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.Api20210601Preview.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 = @"2021-06-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/(?[^/]+)$").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: azure-async-operation + 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(_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); + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 = @"2021-06-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 = @"2021-06-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$").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.Api20210601Preview.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.Api20210601Preview.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); + } + } + } +} \ 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..d1bcc9ba694f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.PowerShell.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.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..ad2911875385 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.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..fb82f5dae0b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Any.json.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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/Api20210601Preview/AppResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.PowerShell.cs new file mode 100644 index 000000000000..cbd75e15ecf1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.PowerShell.cs @@ -0,0 +1,177 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityProperties) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Url, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ActiveDeploymentName = (string) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ActiveDeploymentName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Fqdn, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskUsedInGb, (__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 AppResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityProperties) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Url, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ActiveDeploymentName = (string) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).ActiveDeploymentName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).Fqdn, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).IdentityTenantId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal)this).PersistentDiskUsedInGb, (__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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/AppResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.TypeConverter.cs new file mode 100644 index 000000000000..eb6679cc11fa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AppResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.cs new file mode 100644 index 000000000000..8f067a27b0b0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.cs @@ -0,0 +1,356 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource payload + public partial class AppResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Resource(); + + /// Name of the active deployment of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string ActiveDeploymentName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).ActiveDeploymentName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).ActiveDeploymentName = value ?? null; } + + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public global::System.DateTime? CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).CreatedTime; } + + /// 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.Api20210601Preview.IAppResourcePropertiesInternal)Property).EnableEndToEndTl; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).Fqdn; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).Fqdn = value ?? null; } + + /// 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.Api20210601Preview.IAppResourcePropertiesInternal)Property).HttpsOnly; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IManagedIdentityProperties Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityProperties()); set => this._identity = value; } + + /// Principal Id + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)Identity).PrincipalId = value ?? null; } + + /// Tenant Id + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IManagedIdentityPropertiesInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType)""); } + + /// 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 CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).CreatedTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).CreatedTime = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ManagedIdentityProperties()); set { {_identity = value;} } } + + /// Internal Acessors for PersistentDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.PersistentDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDisk = value; } + + /// Internal Acessors for PersistentDiskUsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for TemporaryDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.TemporaryDisk { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).TemporaryDisk; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).TemporaryDisk = value; } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceInternal.Url { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).Url; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).Url = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDiskMountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDiskSizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).PersistentDiskUsedInGb; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).Public; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)Property).Public = value ?? default(bool); } + + /// 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.Api20210601Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskMountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).TemporaryDiskSizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IAppResourcePropertiesInternal)Property).Url; } + + /// Creates an new instance. + public AppResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResource + { + /// Name of the active deployment of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the active deployment of the App", + SerializedName = @"activeDeploymentName", + PossibleTypes = new [] { typeof(string) })] + string ActiveDeploymentName { get; set; } + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Date time when the resource is created", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// 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 = false, + Description = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { 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; } + /// Principal Id + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// Tenant Id + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id", + 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; } + /// 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; } + + } + /// App resource payload + internal partial interface IAppResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal + { + /// Name of the active deployment of the App + string ActiveDeploymentName { get; set; } + /// Date time when the resource is created + global::System.DateTime? CreatedTime { 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.Api20210601Preview.IManagedIdentityProperties Identity { get; set; } + /// Principal Id + string IdentityPrincipalId { get; set; } + /// Tenant Id + string IdentityTenantId { get; set; } + /// Type of the managed identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? IdentityType { 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.json.cs new file mode 100644 index 000000000000..fbe1abcdddc9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResource.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceProperties.FromJson(__jsonProperties) : Property;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AppResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..8508e745a1b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/AppResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..d35bca4ac495 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AppResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.cs new file mode 100644 index 000000000000..abd1a896309d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.cs @@ -0,0 +1,73 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IAppResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IAppResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.json.cs new file mode 100644 index 000000000000..bb88ff8719d0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceCollection.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IAppResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAppResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AppResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..99cf10493ace --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.PowerShell.cs @@ -0,0 +1,161 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Url, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ActiveDeploymentName = (string) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ActiveDeploymentName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb, (__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 AppResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk) content.GetValueForProperty("TemporaryDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDisk = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk) content.GetValueForProperty("PersistentDisk",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDisk, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDiskTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Public = (bool?) content.GetValueForProperty("Public",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Public, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Url, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ActiveDeploymentName = (string) content.GetValueForProperty("ActiveDeploymentName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).ActiveDeploymentName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Fqdn = (string) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).Fqdn, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).HttpsOnly = (bool?) content.GetValueForProperty("HttpsOnly",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).HttpsOnly, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl = (bool?) content.GetValueForProperty("EnableEndToEndTl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).EnableEndToEndTl, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath = (string) content.GetValueForProperty("TemporaryDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath = (string) content.GetValueForProperty("PersistentDiskMountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskMountPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb = (int?) content.GetValueForProperty("TemporaryDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).TemporaryDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb = (int?) content.GetValueForProperty("PersistentDiskSizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskSizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb = (int?) content.GetValueForProperty("PersistentDiskUsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal)this).PersistentDiskUsedInGb, (__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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/AppResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..7e896499b9f9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AppResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.cs new file mode 100644 index 000000000000..3cd77ecd0dd4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.cs @@ -0,0 +1,271 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// App resource properties payload + public partial class AppResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal + { + + /// Backing field for property. + private string _activeDeploymentName; + + /// Name of the active deployment of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string ActiveDeploymentName { get => this._activeDeploymentName; set => this._activeDeploymentName = value; } + + /// Backing field for property. + private global::System.DateTime? _createdTime; + + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedTime { get => this._createdTime; } + + /// 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; set => this._fqdn = 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; } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.CreatedTime { get => this._createdTime; set { {_createdTime = value;} } } + + /// Internal Acessors for PersistentDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.PersistentDisk { get => (this._persistentDisk = this._persistentDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDisk()); set { {_persistentDisk = value;} } } + + /// Internal Acessors for PersistentDiskUsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.PersistentDiskUsedInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)PersistentDisk).UsedInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)PersistentDisk).UsedInGb = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.AppResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for TemporaryDisk + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.TemporaryDisk { get => (this._temporaryDisk = this._temporaryDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TemporaryDisk()); set { {_temporaryDisk = value;} } } + + /// Internal Acessors for Url + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourcePropertiesInternal.Url { get => this._url; set { {_url = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IPersistentDisk PersistentDisk { get => (this._persistentDisk = this._persistentDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IPersistentDiskInternal)PersistentDisk).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IPersistentDiskInternal)PersistentDisk).SizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ITemporaryDisk TemporaryDisk { get => (this._temporaryDisk = this._temporaryDisk ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ITemporaryDiskInternal)TemporaryDisk).MountPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ITemporaryDiskInternal)TemporaryDisk).SizeInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + + /// Creates an new instance. + public AppResourceProperties() + { + + } + } + /// App resource properties payload + public partial interface IAppResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// Name of the active deployment of the App + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the active deployment of the App", + SerializedName = @"activeDeploymentName", + PossibleTypes = new [] { typeof(string) })] + string ActiveDeploymentName { get; set; } + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Date time when the resource is created", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// 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 = false, + Description = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + string Fqdn { 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; } + /// 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; } + + } + /// App resource properties payload + internal partial interface IAppResourcePropertiesInternal + + { + /// Name of the active deployment of the App + string ActiveDeploymentName { get; set; } + /// Date time when the resource is created + global::System.DateTime? CreatedTime { 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; } + /// Persistent disk settings + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.json.cs new file mode 100644 index 000000000000..ce2d61c3f5c2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AppResourceProperties.json.cs @@ -0,0 +1,128 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.TemporaryDisk.FromJson(__jsonTemporaryDisk) : TemporaryDisk;} + {_persistentDisk = If( json?.PropertyT("persistentDisk"), out var __jsonPersistentDisk) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.PersistentDisk.FromJson(__jsonPersistentDisk) : PersistentDisk;} + {_public = If( json?.PropertyT("public"), out var __jsonPublic) ? (bool?)__jsonPublic : Public;} + {_url = If( json?.PropertyT("url"), out var __jsonUrl) ? (string)__jsonUrl : (string)Url;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_activeDeploymentName = If( json?.PropertyT("activeDeploymentName"), out var __jsonActiveDeploymentName) ? (string)__jsonActiveDeploymentName : (string)ActiveDeploymentName;} + {_fqdn = If( json?.PropertyT("fqdn"), out var __jsonFqdn) ? (string)__jsonFqdn : (string)Fqdn;} + {_httpsOnly = If( json?.PropertyT("httpsOnly"), out var __jsonHttpsOnly) ? (bool?)__jsonHttpsOnly : HttpsOnly;} + {_createdTime = If( json?.PropertyT("createdTime"), out var __jsonCreatedTime) ? global::System.DateTime.TryParse((string)__jsonCreatedTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonCreatedTimeValue) ? __jsonCreatedTimeValue : CreatedTime : CreatedTime;} + {_enableEndToEndTl = If( json?.PropertyT("enableEndToEndTLS"), out var __jsonEnableEndToEndTls) ? (bool?)__jsonEnableEndToEndTls : EnableEndToEndTl;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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._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 ); + } + 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._activeDeploymentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._activeDeploymentName.ToString()) : null, "activeDeploymentName" ,container.Add ); + 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 (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._createdTime ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._createdTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createdTime" ,container.Add ); + } + 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 ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.PowerShell.cs new file mode 100644 index 000000000000..889323335470 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersionsInternal)this).Java = (string) content.GetValueForProperty("Java",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersionsInternal)this).Java = (string) content.GetValueForProperty("Java",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ApplicationInsightsAgentVersions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.TypeConverter.cs new file mode 100644 index 000000000000..a2705264ba32 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ApplicationInsightsAgentVersions.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.cs new file mode 100644 index 000000000000..59c64112aee1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.cs @@ -0,0 +1,49 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IApplicationInsightsAgentVersions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ApplicationInsightsAgentVersions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.json.cs new file mode 100644 index 000000000000..2f801590aa42 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ApplicationInsightsAgentVersions.json.cs @@ -0,0 +1,104 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IApplicationInsightsAgentVersions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AvailableOperations.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.PowerShell.cs new file mode 100644 index 000000000000..a5efea759685 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDetailTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetail[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDetailTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperationsInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/AvailableOperations.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.TypeConverter.cs new file mode 100644 index 000000000000..105b93366e57 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperations ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AvailableOperations.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.cs new file mode 100644 index 000000000000..e77cc425f1a6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.cs @@ -0,0 +1,73 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Available operations of the service + public partial class AvailableOperations : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperations, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IOperationDetail) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDetail[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.json.cs new file mode 100644 index 000000000000..2c247a4f7df9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableOperations.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IOperationDetail) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IAvailableOperations. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableOperations. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AvailableRuntimeVersions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.PowerShell.cs new file mode 100644 index 000000000000..b19f26385c47 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.PowerShell.cs @@ -0,0 +1,131 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/AvailableRuntimeVersions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.TypeConverter.cs new file mode 100644 index 000000000000..01666aab3b34 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/AvailableRuntimeVersions.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.cs new file mode 100644 index 000000000000..cb93ea4cfdad --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class AvailableRuntimeVersions : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal + { + + /// Internal Acessors for Value + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersionsInternal.Value { get => this._value; set { {_value = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ISupportedRuntimeVersion) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion[] Value { get; } + + } + internal partial interface IAvailableRuntimeVersionsInternal + + { + /// A list of all supported runtime versions. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.json.cs new file mode 100644 index 000000000000..ea337d043926 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/AvailableRuntimeVersions.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ISupportedRuntimeVersion) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SupportedRuntimeVersion.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAvailableRuntimeVersions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.PowerShell.cs new file mode 100644 index 000000000000..066d957f58d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Key, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).GeneratedProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).CreatedAt, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).Key, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).GeneratedProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).CreatedAt, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.TypeConverter.cs new file mode 100644 index 000000000000..ad1447eed430 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.cs new file mode 100644 index 000000000000..49c67c780448 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.cs @@ -0,0 +1,214 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource payload + public partial class BindingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).BindingParameter; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesInternal)Property).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).Key = value ?? null; } + + /// Internal Acessors for CreatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.CreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).CreatedAt = value; } + + /// Internal Acessors for GeneratedProperty + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.GeneratedProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).GeneratedProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).GeneratedProperty = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ResourceName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.ResourceName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceName = value; } + + /// Internal Acessors for ResourceType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.ResourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceType = value; } + + /// Internal Acessors for UpdatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceInternal.UpdatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).UpdatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)Property).UpdatedAt = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesInternal)Property).ResourceType; } + + /// 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.Api20210601Preview.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.Api20210601Preview.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 < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesBindingParameters) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal + { + /// Binding parameters of the Binding resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.json.cs new file mode 100644 index 000000000000..03daef45ea8e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..9f3ee5d8b092 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..c249da5fa9c1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.cs new file mode 100644 index 000000000000..774bb2002e51 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.cs @@ -0,0 +1,75 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IBindingResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IBindingResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.json.cs new file mode 100644 index 000000000000..9125e7970070 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceCollection.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IBindingResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..a0ac5df0b456 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.PowerShell.cs @@ -0,0 +1,147 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).Key, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).CreatedAt, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).ResourceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).Key, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).BindingParameter = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters) content.GetValueForProperty("BindingParameter",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).BindingParameter, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResourcePropertiesBindingParametersTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty = (string) content.GetValueForProperty("GeneratedProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).GeneratedProperty, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).CreatedAt = (string) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).CreatedAt, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal)this).UpdatedAt = (string) content.GetValueForProperty("UpdatedAt",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..8474c8198506 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.cs new file mode 100644 index 000000000000..27bfdddd35a6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.cs @@ -0,0 +1,186 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Binding resource properties payload + public partial class BindingResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => (this._bindingParameter = this._bindingParameter ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesInternal.CreatedAt { get => this._createdAt; set { {_createdAt = value;} } } + + /// Internal Acessors for GeneratedProperty + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal.GeneratedProperty { get => this._generatedProperty; set { {_generatedProperty = value;} } } + + /// Internal Acessors for ResourceName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal.ResourceName { get => this._resourceName; set { {_resourceName = value;} } } + + /// Internal Acessors for ResourceType + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesInternal.ResourceType { get => this._resourceType; set { {_resourceType = value;} } } + + /// Internal Acessors for UpdatedAt + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IBindingResourcePropertiesBindingParameters) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.json.cs new file mode 100644 index 000000000000..f37cb6bfa279 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourceProperties.json.cs @@ -0,0 +1,130 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.IBindingResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs new file mode 100644 index 000000000000..c14afcad9d10 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.PowerShell.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs new file mode 100644 index 000000000000..26644a2e7c8f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourcePropertiesBindingParameters.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.cs new file mode 100644 index 000000000000..3d97961c42b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.cs @@ -0,0 +1,32 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IBindingResourcePropertiesBindingParameters, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/BindingResourcePropertiesBindingParameters.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.dictionary.cs new file mode 100644 index 000000000000..d0f5a3f3cd07 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.BindingResourcePropertiesBindingParameters source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.json.cs new file mode 100644 index 000000000000..39fc83b9c325 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/BindingResourcePropertiesBindingParameters.json.cs @@ -0,0 +1,104 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IBindingResourcePropertiesBindingParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CertificateProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.PowerShell.cs new file mode 100644 index 000000000000..3e81640c415f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).VaultUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).KeyVaultCertName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).CertVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).DnsName, __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 CertificateProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).VaultUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).KeyVaultCertName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).CertVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).Issuer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).IssuedDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ExpirationDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).ActivateDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).SubjectName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)this).DnsName, __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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CertificateProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.TypeConverter.cs new file mode 100644 index 000000000000..5ee9caec8f7f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CertificateProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.cs new file mode 100644 index 000000000000..7e768cfd2d41 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.cs @@ -0,0 +1,220 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 _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; } + + /// 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; } + + /// 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.Api20210601Preview.ICertificatePropertiesInternal.ActivateDate { get => this._activateDate; set { {_activateDate = value;} } } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.DnsName { get => this._dnsName; set { {_dnsName = value;} } } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.ExpirationDate { get => this._expirationDate; set { {_expirationDate = value;} } } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.IssuedDate { get => this._issuedDate; set { {_issuedDate = value;} } } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.Issuer { get => this._issuer; set { {_issuer = value;} } } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.SubjectName { get => this._subjectName; set { {_subjectName = value;} } } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal.Thumbprint { get => this._thumbprint; set { {_thumbprint = value;} } } + + /// 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 _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 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 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; } + /// 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 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 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 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; } + + } + /// Certificate resource payload. + internal partial interface ICertificatePropertiesInternal + + { + /// The activate date of certificate. + string ActivateDate { get; set; } + /// The certificate version of key vault. + string CertVersion { 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 certificate name of key vault. + string KeyVaultCertName { get; set; } + /// The subject name of certificate. + string SubjectName { get; set; } + /// The thumbprint of certificate. + string Thumbprint { 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/Api20210601Preview/CertificateProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.json.cs new file mode 100644 index 000000000000..d0828bf75973 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateProperties.json.cs @@ -0,0 +1,148 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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; + } + {_thumbprint = If( json?.PropertyT("thumbprint"), out var __jsonThumbprint) ? (string)__jsonThumbprint : (string)Thumbprint;} + {_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;} + {_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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new CertificateProperties(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._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 ); + } + 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 ); + 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); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.PowerShell.cs new file mode 100644 index 000000000000..191588197e3b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.PowerShell.cs @@ -0,0 +1,159 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificatePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).VaultUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).KeyVaultCertName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).CertVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Issuer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).IssuedDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ExpirationDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ActivateDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).SubjectName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).DnsName, __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 CertificateResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificatePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).VaultUri = (string) content.GetValueForProperty("VaultUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).VaultUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).KeyVaultCertName = (string) content.GetValueForProperty("KeyVaultCertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).KeyVaultCertName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).CertVersion = (string) content.GetValueForProperty("CertVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).CertVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Issuer = (string) content.GetValueForProperty("Issuer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).Issuer, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).IssuedDate = (string) content.GetValueForProperty("IssuedDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).IssuedDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ExpirationDate = (string) content.GetValueForProperty("ExpirationDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ExpirationDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ActivateDate = (string) content.GetValueForProperty("ActivateDate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).ActivateDate, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).SubjectName = (string) content.GetValueForProperty("SubjectName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).SubjectName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).DnsName = (string[]) content.GetValueForProperty("DnsName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal)this).DnsName, __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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CertificateResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.TypeConverter.cs new file mode 100644 index 000000000000..f091b602ea4c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CertificateResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.cs new file mode 100644 index 000000000000..2d01106c4765 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.cs @@ -0,0 +1,242 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Certificate resource payload. + public partial class CertificateResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICertificatePropertiesInternal)Property).ActivateDate; } + + /// The certificate version of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string CertVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).CertVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).CertVersion = value ?? null; } + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICertificatePropertiesInternal)Property).Issuer; } + + /// The certificate name of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string KeyVaultCertName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).KeyVaultCertName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).KeyVaultCertName = value ?? null; } + + /// Internal Acessors for ActivateDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.ActivateDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).ActivateDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).ActivateDate = value; } + + /// Internal Acessors for DnsName + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.DnsName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).DnsName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).DnsName = value; } + + /// Internal Acessors for ExpirationDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.ExpirationDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).ExpirationDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).ExpirationDate = value; } + + /// Internal Acessors for IssuedDate + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.IssuedDate { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).IssuedDate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).IssuedDate = value; } + + /// Internal Acessors for Issuer + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.Issuer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).Issuer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).Issuer = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateProperties()); set { {_property = value;} } } + + /// Internal Acessors for SubjectName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.SubjectName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).SubjectName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).SubjectName = value; } + + /// Internal Acessors for Thumbprint + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceInternal.Thumbprint { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).Thumbprint = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICertificateProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateProperties()); set => this._property = value; } + + /// 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.Api20210601Preview.ICertificatePropertiesInternal)Property).SubjectName; } + + /// 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.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Type; } + + /// The vault uri of user key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string VaultUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).VaultUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificatePropertiesInternal)Property).VaultUri = value ?? null; } + + /// Creates an new instance. + public CertificateResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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 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; } + /// 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 certificate name of key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The certificate name of key vault.", + SerializedName = @"keyVaultCertName", + PossibleTypes = new [] { typeof(string) })] + string KeyVaultCertName { get; set; } + /// 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 vault uri of user key vault. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The vault uri of user key vault.", + SerializedName = @"vaultUri", + PossibleTypes = new [] { typeof(string) })] + string VaultUri { get; set; } + + } + /// Certificate resource payload. + internal partial interface ICertificateResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal + { + /// The activate date of certificate. + string ActivateDate { get; set; } + /// The certificate version of key vault. + string CertVersion { 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 certificate name of key vault. + string KeyVaultCertName { get; set; } + /// Properties of the certificate resource payload. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateProperties Property { get; set; } + /// The subject name of certificate. + string SubjectName { get; set; } + /// The thumbprint of certificate. + string Thumbprint { 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/Api20210601Preview/CertificateResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.json.cs new file mode 100644 index 000000000000..159a66fdd87b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CertificateResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..a04c89f8574e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CertificateResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..250d2950d0b7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CertificateResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.cs new file mode 100644 index 000000000000..4ee30d986c36 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.cs @@ -0,0 +1,65 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ICertificateResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICertificateResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICertificateResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.json.cs new file mode 100644 index 000000000000..0bd8df1b0121 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CertificateResourceCollection.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ICertificateResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICertificateResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CloudError.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.PowerShell.cs new file mode 100644 index 000000000000..6ededf6eb3f8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CloudErrorBodyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CloudErrorBodyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Target, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CloudError.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.TypeConverter.cs new file mode 100644 index 000000000000..db1634d49042 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CloudError.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.cs new file mode 100644 index 000000000000..696a98e50f3a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ICloudError, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBodyInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBody[] Detail { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)Error).Detail; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)Error).Detail = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBody Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBodyInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)Error).Message = value ?? null; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBodyInternal)Error).Target; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICloudErrorBody[] Detail { get; set; } + /// An error response from the service. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CloudError.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.json.cs new file mode 100644 index 000000000000..ac53b7eb1966 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudError.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.CloudErrorBody.FromJson(__jsonError) : Error;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CloudErrorBody.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.PowerShell.cs new file mode 100644 index 000000000000..356f048ca657 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Target = (string) content.GetValueForProperty("Target",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Target, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBodyInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CloudErrorBody.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.TypeConverter.cs new file mode 100644 index 000000000000..780f8824e59e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CloudErrorBody.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.cs new file mode 100644 index 000000000000..3360fa54f9c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ICloudErrorBody, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICloudErrorBody) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CloudErrorBody.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.json.cs new file mode 100644 index 000000000000..e087d4d2568c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CloudErrorBody.json.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ICloudErrorBody) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CloudErrorBody.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICloudErrorBody. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ClusterResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..46f95bc8c891 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.PowerShell.cs @@ -0,0 +1,155 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ServiceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP, __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 ClusterResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).ServiceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)this).OutboundIPPublicIP, __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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ClusterResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..0929434e5ca0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ClusterResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.cs new file mode 100644 index 000000000000..0fc61c2cf6f9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.cs @@ -0,0 +1,228 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service properties payload + public partial class ClusterResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal + { + + /// Internal Acessors for NetworkProfile + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.NetworkProfile { get => (this._networkProfile = this._networkProfile ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfile()); set { {_networkProfile = value;} } } + + /// Internal Acessors for NetworkProfileOutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.NetworkProfileOutboundIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).OutboundIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).OutboundIP = value; } + + /// Internal Acessors for NetworkProfileRequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic = value; } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for ServiceId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.ServiceId { get => this._serviceId; set { {_serviceId = value;} } } + + /// Internal Acessors for Version + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal.Version { get => this._version; set { {_version = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.INetworkProfile NetworkProfile { get => (this._networkProfile = this._networkProfile ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfile()); set => this._networkProfile = value; } + + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).AppNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).AppNetworkResourceGroup = value ?? null; } + + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).AppSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).AppSubnetId = value ?? null; } + + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).RequiredTraffic; } + + /// Azure Spring Cloud 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.Api20210601Preview.INetworkProfileInternal)NetworkProfile).ServiceCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).ServiceCidr = value ?? null; } + + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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.Api20210601Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.INetworkProfileInternal)NetworkProfile).ServiceRuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.INetworkProfileInternal)NetworkProfile).OutboundIPPublicIP; } + + /// 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; } + + /// Creates an new instance. + public ClusterResourceProperties() + { + + } + } + /// Service properties payload + public partial interface IClusterResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Cloud Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppSubnetId { get; set; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Cloud instance.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; } + /// Azure Spring Cloud service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Cloud service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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; } + /// 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; } + + } + /// Service properties payload + internal partial interface IClusterResourcePropertiesInternal + + { + /// Network profile of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile NetworkProfile { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + string NetworkProfileAppSubnetId { get; set; } + /// Desired outbound IP resources for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs NetworkProfileOutboundIP { get; set; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; set; } + /// Azure Spring Cloud service reserved CIDR + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Service Runtime + /// + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime + /// + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { 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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.json.cs new file mode 100644 index 000000000000..43d927df0a3e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ClusterResourceProperties.json.cs @@ -0,0 +1,116 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.NetworkProfile.FromJson(__jsonNetworkProfile) : NetworkProfile;} + {_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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 ); + 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 ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.PowerShell.cs new file mode 100644 index 000000000000..24001faac729 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Label, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Username, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Password, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).PrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Repository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("Repository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Repository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Label, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Username, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).Password, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).PrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerGitProperty.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.TypeConverter.cs new file mode 100644 index 000000000000..167029b64aba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerGitProperty.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.cs new file mode 100644 index 000000000000..c459e982d3c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.cs @@ -0,0 +1,199 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Property of git. + public partial class ConfigServerGitProperty : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerGitProperty.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.json.cs new file mode 100644 index 000000000000..abe0b8cac293 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerGitProperty.json.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IGitPatternRepository) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitProperty. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.PowerShell.cs new file mode 100644 index 000000000000..cb0ae1ba8aa5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.PowerShell.cs @@ -0,0 +1,163 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.TypeConverter.cs new file mode 100644 index 000000000000..8cf75bb4c9e0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.cs new file mode 100644 index 000000000000..5687295008a9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.cs @@ -0,0 +1,246 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config server git properties payload + public partial class ConfigServerProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettings ConfigServer { get => (this._configServer = this._configServer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettings()); set => this._configServer = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyHostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyLabel; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyPrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertySearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyStrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitPropertyUsername; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)Error).Message = value ?? null; } + + /// Internal Acessors for ConfigServer + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal.ConfigServer { get => (this._configServer = this._configServer ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettings()); set { {_configServer = value;} } } + + /// Internal Acessors for ConfigServerGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal.ConfigServerGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)ConfigServer).GitProperty = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Error()); set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerSettings ConfigServer { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty ConfigServerGitProperty { get; set; } + /// Error when apply config server settings. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.json.cs new file mode 100644 index 000000000000..91b6775dffd9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerProperties.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Error.FromJson(__jsonError) : Error;} + {_configServer = If( json?.PropertyT("configServer"), out var __jsonConfigServer) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.PowerShell.cs new file mode 100644 index 000000000000..7cd7650d2e01 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.PowerShell.cs @@ -0,0 +1,171 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServer = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings) content.GetValueForProperty("ConfigServer",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServer, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("ConfigServerGitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).ConfigServerGitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.TypeConverter.cs new file mode 100644 index 000000000000..c78c2899f9e5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.cs new file mode 100644 index 000000000000..d53c536d581f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.cs @@ -0,0 +1,281 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Config Server resource + public partial class ConfigServerResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyHostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyLabel; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyPassword; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyPrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyRepository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertySearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyStrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).GitPropertyUsername; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).Message = value ?? null; } + + /// Internal Acessors for ConfigServer + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal.ConfigServer { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ConfigServer; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ConfigServer = value; } + + /// Internal Acessors for ConfigServerGitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal.ConfigServerGitProperty { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ConfigServerGitProperty; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ConfigServerGitProperty = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ConfigServerState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerPropertiesInternal)Property).ProvisioningState; } + + /// 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.Api20210601Preview.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 < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal + { + /// The code of error. + string Code { get; set; } + /// Settings of config server. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings ConfigServer { get; set; } + /// Property of git environment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty ConfigServerGitProperty { get; set; } + /// Error when apply config server settings. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.json.cs new file mode 100644 index 000000000000..d89a4e61ec76 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.PowerShell.cs new file mode 100644 index 000000000000..77121c4cefc2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitProperty = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty) content.GetValueForProperty("GitProperty",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitProperty, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerGitPropertyTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyRepository = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository[]) content.GetValueForProperty("GitPropertyRepository",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyRepository, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.GitPatternRepositoryTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUri = (string) content.GetValueForProperty("GitPropertyUri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyLabel = (string) content.GetValueForProperty("GitPropertyLabel",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyLabel, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath = (string[]) content.GetValueForProperty("GitPropertySearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertySearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUsername = (string) content.GetValueForProperty("GitPropertyUsername",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyUsername, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPassword = (string) content.GetValueForProperty("GitPropertyPassword",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPassword, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey = (string) content.GetValueForProperty("GitPropertyHostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm = (string) content.GetValueForProperty("GitPropertyHostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyHostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey = (string) content.GetValueForProperty("GitPropertyPrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyPrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal)this).GitPropertyStrictHostKeyChecking = (bool?) content.GetValueForProperty("GitPropertyStrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.TypeConverter.cs new file mode 100644 index 000000000000..f889fc417a83 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.cs new file mode 100644 index 000000000000..a3d2b2f23c9a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.cs @@ -0,0 +1,181 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The settings of config server. + public partial class ConfigServerSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitProperty GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).HostKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).HostKeyAlgorithm; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Label; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Password; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).PrivateKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository[] GitPropertyRepository { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Repository; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).SearchPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).StrictHostKeyChecking; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Uri; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Username; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitPropertyInternal)GitProperty).Username = value ?? null; } + + /// Internal Acessors for GitProperty + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerGitProperty Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsInternal.GitProperty { get => (this._gitProperty = this._gitProperty ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IGitPatternRepository) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.json.cs new file mode 100644 index 000000000000..036c435fc91c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettings.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ConfigServerGitProperty.FromJson(__jsonGitProperty) : GitProperty;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsErrorRecord.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.PowerShell.cs new file mode 100644 index 000000000000..34172e46b2a8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecordInternal)this).Message = (string[]) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs new file mode 100644 index 000000000000..ed8347ebc6ac --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecord ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsErrorRecord.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.cs new file mode 100644 index 000000000000..a31773765cb8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IConfigServerSettingsErrorRecord, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsErrorRecord.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.json.cs new file mode 100644 index 000000000000..f43cdfb6e7b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsErrorRecord.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IConfigServerSettingsErrorRecord. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecord. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.PowerShell.cs new file mode 100644 index 000000000000..580bb6b78c2f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecord[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).Detail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsErrorRecord[]) content.GetValueForProperty("Detail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal)this).Detail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..069253381e03 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.TypeConverter.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.cs new file mode 100644 index 000000000000..5cd8af55f343 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IConfigServerSettingsValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IConfigServerSettingsErrorRecord) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ConfigServerSettingsValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.json.cs new file mode 100644 index 000000000000..63a5f3933054 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ConfigServerSettingsValidateResult.json.cs @@ -0,0 +1,112 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IConfigServerSettingsErrorRecord) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettingsErrorRecord.FromJson(__u) )) ))() : null : Detail;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettingsValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.PowerShell.cs new file mode 100644 index 000000000000..da6f20f8b0d4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).CertName, 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 CustomDomainProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)this).CertName, 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CustomDomainProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.TypeConverter.cs new file mode 100644 index 000000000000..5ccb297c2654 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.cs new file mode 100644 index 000000000000..bd9cf3ac7c90 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.cs @@ -0,0 +1,83 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ICustomDomainProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICustomDomainPropertiesInternal.AppName { get => this._appName; set { {_appName = value;} } } + + /// 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; } + /// 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; } + /// The thumbprint of bound certificate. + string Thumbprint { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.json.cs new file mode 100644 index 000000000000..d98394543c16 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainProperties.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.PowerShell.cs new file mode 100644 index 000000000000..bb1a44b665f7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).CertName, 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 CustomDomainResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Thumbprint = (string) content.GetValueForProperty("Thumbprint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).Thumbprint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).CertName = (string) content.GetValueForProperty("CertName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal)this).CertName, 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CustomDomainResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.TypeConverter.cs new file mode 100644 index 000000000000..a95bb7ee82e7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.cs new file mode 100644 index 000000000000..f2619bb648c5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.cs @@ -0,0 +1,126 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain resource payload. + public partial class CustomDomainResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICustomDomainPropertiesInternal)Property).CertName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for AppName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal.AppName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)Property).AppName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainPropertiesInternal)Property).AppName = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICustomDomainProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainProperties()); set => this._property = value; } + + /// 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.Api20210601Preview.ICustomDomainPropertiesInternal)Property).Thumbprint; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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 < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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; } + /// 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.Api20210601Preview.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.Api20210601Preview.ICustomDomainProperties 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/Api20210601Preview/CustomDomainResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.json.cs new file mode 100644 index 000000000000..650baf862ec9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..e8cdb8762ea3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CustomDomainResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..eb27ed11e59a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.cs new file mode 100644 index 000000000000..ceb608046a0a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.cs @@ -0,0 +1,65 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ICustomDomainResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICustomDomainResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICustomDomainResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.json.cs new file mode 100644 index 000000000000..7d51af75f76e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainResourceCollection.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ICustomDomainResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ICustomDomainResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidatePayload.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.PowerShell.cs new file mode 100644 index 000000000000..e63b61edd87a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayloadInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayloadInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CustomDomainValidatePayload.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.TypeConverter.cs new file mode 100644 index 000000000000..11bb1e2fba2b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidatePayload.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.cs new file mode 100644 index 000000000000..beb423856263 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Custom domain validate payload. + public partial class CustomDomainValidatePayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidatePayload.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.json.cs new file mode 100644 index 000000000000..f07798367e03 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidatePayload.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ICustomDomainValidatePayload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidateResult.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.PowerShell.cs new file mode 100644 index 000000000000..2f19a459f4bf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).IsValid = (bool?) content.GetValueForProperty("IsValid",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).IsValid, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResultInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/CustomDomainValidateResult.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.TypeConverter.cs new file mode 100644 index 000000000000..75c2234c6d7b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidateResult.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.cs new file mode 100644 index 000000000000..5bee601e8c86 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Validation result for custom domain. + public partial class CustomDomainValidateResult : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResult, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/CustomDomainValidateResult.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.json.cs new file mode 100644 index 000000000000..512d695a9c2e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/CustomDomainValidateResult.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ICustomDomainValidateResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidateResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentInstance.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.PowerShell.cs new file mode 100644 index 000000000000..28db4ae4e42f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.PowerShell.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Status, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Reason, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).DiscoveryStatus = (string) content.GetValueForProperty("DiscoveryStatus",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).DiscoveryStatus, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).StartTime = (string) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).StartTime, 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Status = (string) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Status, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).Reason, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).DiscoveryStatus = (string) content.GetValueForProperty("DiscoveryStatus",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).DiscoveryStatus, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).StartTime = (string) content.GetValueForProperty("StartTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal)this).StartTime, 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentInstance.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.TypeConverter.cs new file mode 100644 index 000000000000..df3437ccd0a2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentInstance.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.cs new file mode 100644 index 000000000000..1a1a97d5db98 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.cs @@ -0,0 +1,129 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment instance payload + public partial class DeploymentInstance : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentInstanceInternal.DiscoveryStatus { get => this._discoveryStatus; set { {_discoveryStatus = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Reason + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal.Reason { get => this._reason; set { {_reason = value;} } } + + /// Internal Acessors for StartTime + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal.StartTime { get => this._startTime; set { {_startTime = value;} } } + + /// Internal Acessors for Status + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstanceInternal.Status { get => this._status; set { {_status = 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; } + + /// 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; } + + } + /// 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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.json.cs new file mode 100644 index 000000000000..affa3cfb3c96 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentInstance.json.cs @@ -0,0 +1,124 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.PowerShell.cs new file mode 100644 index 000000000000..5ae0e8c93a9b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.PowerShell.cs @@ -0,0 +1,189 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuTier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("DeploymentSettingResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingJvmOption = (string) content.GetValueForProperty("DeploymentSettingJvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingJvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingEnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("DeploymentSettingEnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingEnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingRuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("DeploymentSettingRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingRuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceRelativePath = (string) content.GetValueForProperty("SourceRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceArtifactSelector = (string) content.GetValueForProperty("SourceArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceArtifactSelector, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingCpu = (int?) content.GetValueForProperty("DeploymentSettingCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingCpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingMemoryInGb = (int?) content.GetValueForProperty("DeploymentSettingMemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingMemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingNetCoreMainEntryPath = (string) content.GetValueForProperty("DeploymentSettingNetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingNetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)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 DeploymentResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuTier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("DeploymentSettingResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingJvmOption = (string) content.GetValueForProperty("DeploymentSettingJvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingJvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingEnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("DeploymentSettingEnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingEnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingRuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("DeploymentSettingRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingRuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceRelativePath = (string) content.GetValueForProperty("SourceRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceArtifactSelector = (string) content.GetValueForProperty("SourceArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).SourceArtifactSelector, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingCpu = (int?) content.GetValueForProperty("DeploymentSettingCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingCpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingMemoryInGb = (int?) content.GetValueForProperty("DeploymentSettingMemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingMemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingNetCoreMainEntryPath = (string) content.GetValueForProperty("DeploymentSettingNetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).DeploymentSettingNetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal)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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.TypeConverter.cs new file mode 100644 index 000000000000..6f27a3c546fa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.cs new file mode 100644 index 000000000000..7351569394e0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.cs @@ -0,0 +1,472 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource payload + public partial class DeploymentResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Active; } + + /// App name of the deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string AppName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).AppName; } + + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public global::System.DateTime? CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).CreatedTime; } + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? DeploymentSettingCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingCpu = value ?? default(int); } + + /// Collection of environment variables + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingEnvironmentVariable; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingEnvironmentVariable = value ?? null /* model class */; } + + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DeploymentSettingJvmOption { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingJvmOption; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingJvmOption = value ?? null; } + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? DeploymentSettingMemoryInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingMemoryInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingMemoryInGb = value ?? default(int); } + + /// The path to the .NET executable relative to zip root + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DeploymentSettingNetCoreMainEntryPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingNetCoreMainEntryPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingNetCoreMainEntryPath = value ?? null; } + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingRuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingRuntimeVersion = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion)""); } + + /// 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.Api20210601Preview.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.Api20210601Preview.IDeploymentInstance[] Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Instance; } + + /// Internal Acessors for Active + bool? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Active { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Active; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Active = value; } + + /// Internal Acessors for AppName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.AppName { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).AppName; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).AppName = value; } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.CreatedTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).CreatedTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).CreatedTime = value; } + + /// Internal Acessors for DeploymentSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.DeploymentSetting { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSetting; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSetting = value; } + + /// Internal Acessors for DeploymentSettingResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.DeploymentSettingResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).DeploymentSettingResourceRequest = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Instance { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Instance; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Instance = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Source { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Source = value; } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceInternal.Status { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Status = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ProvisioningState; } + + /// + /// 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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ResourceRequestCpu = 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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).ResourceRequestMemory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// + /// 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.Inlined)] + public string SourceArtifactSelector { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceArtifactSelector; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceArtifactSelector = value ?? null; } + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceRelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceRelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceRelativePath = value ?? null; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? SourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType)""); } + + /// 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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).SourceVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourcePropertiesInternal)Property).Status; } + + /// 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.Api20210601Preview.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 < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResource + { + /// Indicates whether the Deployment is active + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; } + /// App name of the deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"App name of the deployment", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + string AppName { get; } + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Date time when the resource is created", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + int? DeploymentSettingCpu { 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.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get; set; } + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + string DeploymentSettingJvmOption { get; set; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + int? DeploymentSettingMemoryInGb { get; set; } + /// 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 DeploymentSettingNetCoreMainEntryPath { get; set; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { 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.Api20210601Preview.IDeploymentInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + /// + /// 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; } + /// 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; } + /// + /// 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 SourceArtifactSelector { get; set; } + /// 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 SourceRelativePath { 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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.Api20210601Preview.IResourceInternal + { + /// Indicates whether the Deployment is active + bool? Active { get; set; } + /// App name of the deployment + string AppName { get; set; } + /// Date time when the resource is created + global::System.DateTime? CreatedTime { get; set; } + /// Deployment settings of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + int? DeploymentSettingCpu { get; set; } + /// Collection of environment variables + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get; set; } + /// JVM parameter + string DeploymentSettingJvmOption { get; set; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + int? DeploymentSettingMemoryInGb { get; set; } + /// The path to the .NET executable relative to zip root + string DeploymentSettingNetCoreMainEntryPath { 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.Api20210601Preview.IResourceRequests DeploymentSettingResourceRequest { get; set; } + /// Runtime version + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { get; set; } + /// Collection of instances belong to the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[] Instance { get; set; } + /// Properties of the Deployment resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties Property { get; set; } + /// Provisioning state of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { 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; } + /// Sku of the Deployment resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IUserSourceInfo Source { get; set; } + /// + /// 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 SourceArtifactSelector { get; set; } + /// Relative path of the storage which stores the source + string SourceRelativePath { get; set; } + /// Type of the source uploaded + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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/Api20210601Preview/DeploymentResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.json.cs new file mode 100644 index 000000000000..9727b47fe1dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResource.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Sku.FromJson(__jsonSku) : Sku;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentResourceCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.PowerShell.cs new file mode 100644 index 000000000000..e07f33ff7c65 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentResourceCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.TypeConverter.cs new file mode 100644 index 000000000000..b47ca9c5bc3d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentResourceCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.cs new file mode 100644 index 000000000000..be174ecf37e3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.cs @@ -0,0 +1,73 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IDeploymentResourceCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IDeploymentResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.json.cs new file mode 100644 index 000000000000..910a276890fd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceCollection.json.cs @@ -0,0 +1,111 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IDeploymentResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourceCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentResourceProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..7b36f379626a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.PowerShell.cs @@ -0,0 +1,173 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("DeploymentSettingResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingJvmOption = (string) content.GetValueForProperty("DeploymentSettingJvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingJvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingEnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("DeploymentSettingEnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingEnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingRuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("DeploymentSettingRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingRuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceRelativePath = (string) content.GetValueForProperty("SourceRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceArtifactSelector = (string) content.GetValueForProperty("SourceArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceArtifactSelector, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingCpu = (int?) content.GetValueForProperty("DeploymentSettingCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingCpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingMemoryInGb = (int?) content.GetValueForProperty("DeploymentSettingMemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingMemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingNetCoreMainEntryPath = (string) content.GetValueForProperty("DeploymentSettingNetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingNetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)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 DeploymentResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings) content.GetValueForProperty("DeploymentSetting",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSetting, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).AppName = (string) content.GetValueForProperty("AppName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).AppName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Active = (bool?) content.GetValueForProperty("Active",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Active, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).CreatedTime = (global::System.DateTime?) content.GetValueForProperty("CreatedTime",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).CreatedTime, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Instance = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[]) content.GetValueForProperty("Instance",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).Instance, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstanceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("DeploymentSettingResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingJvmOption = (string) content.GetValueForProperty("DeploymentSettingJvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingJvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingEnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("DeploymentSettingEnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingEnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingRuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("DeploymentSettingRuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingRuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("SourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceType, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceRelativePath = (string) content.GetValueForProperty("SourceRelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceRelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion = (string) content.GetValueForProperty("SourceVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceVersion, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceArtifactSelector = (string) content.GetValueForProperty("SourceArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).SourceArtifactSelector, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingCpu = (int?) content.GetValueForProperty("DeploymentSettingCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingCpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingMemoryInGb = (int?) content.GetValueForProperty("DeploymentSettingMemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingMemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingNetCoreMainEntryPath = (string) content.GetValueForProperty("DeploymentSettingNetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).DeploymentSettingNetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal)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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentResourceProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..94990bc8dcbd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentResourceProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.cs new file mode 100644 index 000000000000..6eddda91b246 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.cs @@ -0,0 +1,398 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource properties payload + public partial class DeploymentResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + + /// Backing field for property. + private string _appName; + + /// App name of the deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppName { get => this._appName; } + + /// Backing field for property. + private global::System.DateTime? _createdTime; + + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public global::System.DateTime? CreatedTime { get => this._createdTime; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings _deploymentSetting; + + /// Deployment settings of the Deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings DeploymentSetting { get => (this._deploymentSetting = this._deploymentSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettings()); set => this._deploymentSetting = value; } + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? DeploymentSettingCpu { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).Cpu = value ?? default(int); } + + /// Collection of environment variables + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).EnvironmentVariable; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).EnvironmentVariable = value ?? null /* model class */; } + + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DeploymentSettingJvmOption { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).JvmOption; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).JvmOption = value ?? null; } + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public int? DeploymentSettingMemoryInGb { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).MemoryInGb; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).MemoryInGb = value ?? default(int); } + + /// The path to the .NET executable relative to zip root + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string DeploymentSettingNetCoreMainEntryPath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).NetCoreMainEntryPath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).NetCoreMainEntryPath = value ?? null; } + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).RuntimeVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).RuntimeVersion = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentInstance[] Instance { get => this._instance; } + + /// Internal Acessors for Active + bool? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.Active { get => this._active; set { {_active = value;} } } + + /// Internal Acessors for AppName + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.AppName { get => this._appName; set { {_appName = value;} } } + + /// Internal Acessors for CreatedTime + global::System.DateTime? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.CreatedTime { get => this._createdTime; set { {_createdTime = value;} } } + + /// Internal Acessors for DeploymentSetting + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.DeploymentSetting { get => (this._deploymentSetting = this._deploymentSetting ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettings()); set { {_deploymentSetting = value;} } } + + /// Internal Acessors for DeploymentSettingResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.DeploymentSettingResourceRequest { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequest; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequest = value; } + + /// Internal Acessors for Instance + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentResourcePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourcePropertiesInternal.Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfo()); set { {_source = value;} } } + + /// Internal Acessors for Status + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + + /// + /// 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.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequestCpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequestCpu = 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.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequestMemory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)DeploymentSetting).ResourceRequestMemory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IUserSourceInfo Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.UserSourceInfo()); set => this._source = value; } + + /// + /// 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.Inlined)] + public string SourceArtifactSelector { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).ArtifactSelector; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).ArtifactSelector = value ?? null; } + + /// Relative path of the storage which stores the source + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string SourceRelativePath { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).RelativePath; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).RelativePath = value ?? null; } + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? SourceType { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)Source).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType)""); } + + /// 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.Api20210601Preview.IUserSourceInfoInternal)Source).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 = true, + Description = @"Indicates whether the Deployment is active", + SerializedName = @"active", + PossibleTypes = new [] { typeof(bool) })] + bool? Active { get; } + /// App name of the deployment + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"App name of the deployment", + SerializedName = @"appName", + PossibleTypes = new [] { typeof(string) })] + string AppName { get; } + /// Date time when the resource is created + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Date time when the resource is created", + SerializedName = @"createdTime", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? CreatedTime { get; } + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + int? DeploymentSettingCpu { 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.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get; set; } + /// JVM parameter + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + string DeploymentSettingJvmOption { get; set; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + int? DeploymentSettingMemoryInGb { get; set; } + /// 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 DeploymentSettingNetCoreMainEntryPath { get; set; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { 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.Api20210601Preview.IDeploymentInstance) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + /// + /// 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; } + /// + /// 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 SourceArtifactSelector { get; set; } + /// 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 SourceRelativePath { 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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; } + /// App name of the deployment + string AppName { get; set; } + /// Date time when the resource is created + global::System.DateTime? CreatedTime { get; set; } + /// Deployment settings of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings DeploymentSetting { get; set; } + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + int? DeploymentSettingCpu { get; set; } + /// Collection of environment variables + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get; set; } + /// JVM parameter + string DeploymentSettingJvmOption { get; set; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + int? DeploymentSettingMemoryInGb { get; set; } + /// The path to the .NET executable relative to zip root + string DeploymentSettingNetCoreMainEntryPath { 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.Api20210601Preview.IResourceRequests DeploymentSettingResourceRequest { get; set; } + /// Runtime version + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? DeploymentSettingRuntimeVersion { get; set; } + /// Collection of instances belong to the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentInstance[] Instance { get; set; } + /// Provisioning state of the Deployment + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceProvisioningState? ProvisioningState { 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; } + /// Uploaded source information of the deployment. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo Source { get; set; } + /// + /// 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 SourceArtifactSelector { get; set; } + /// Relative path of the storage which stores the source + string SourceRelativePath { get; set; } + /// Type of the source uploaded + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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/Api20210601Preview/DeploymentResourceProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.json.cs new file mode 100644 index 000000000000..1b84ec10c060 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentResourceProperties.json.cs @@ -0,0 +1,141 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.UserSourceInfo.FromJson(__jsonSource) : Source;} + {_deploymentSetting = If( json?.PropertyT("deploymentSettings"), out var __jsonDeploymentSettings) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettings.FromJson(__jsonDeploymentSettings) : DeploymentSetting;} + {_appName = If( json?.PropertyT("appName"), out var __jsonAppName) ? (string)__jsonAppName : (string)AppName;} + {_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;} + {_createdTime = If( json?.PropertyT("createdTime"), out var __jsonCreatedTime) ? global::System.DateTime.TryParse((string)__jsonCreatedTime, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonCreatedTimeValue) ? __jsonCreatedTimeValue : CreatedTime : CreatedTime;} + {_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.Api20210601Preview.IDeploymentInstance) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentInstance.FromJson(__u) )) ))() : null : Instance;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 ); + AddIf( null != this._deploymentSetting ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._deploymentSetting.ToJson(null,serializationMode) : null, "deploymentSettings" ,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 ); + } + 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 ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.SerializationMode.IncludeReadOnly)) + { + 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)) + { + AddIf( null != this._createdTime ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonString(this._createdTime?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "createdTime" ,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/Api20210601Preview/DeploymentSettings.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.PowerShell.cs new file mode 100644 index 000000000000..91d9edafa066 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.PowerShell.cs @@ -0,0 +1,149 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).Cpu = (int?) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).Cpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).MemoryInGb = (int?) content.GetValueForProperty("MemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).MemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).JvmOption = (string) content.GetValueForProperty("JvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).JvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).NetCoreMainEntryPath = (string) content.GetValueForProperty("NetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).NetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).RuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).RuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)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 DeploymentSettings(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequest = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests) content.GetValueForProperty("ResourceRequest",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequest, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequestsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).Cpu = (int?) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).Cpu, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).MemoryInGb = (int?) content.GetValueForProperty("MemoryInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).MemoryInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).JvmOption = (string) content.GetValueForProperty("JvmOption",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).JvmOption, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).NetCoreMainEntryPath = (string) content.GetValueForProperty("NetCoreMainEntryPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).NetCoreMainEntryPath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).EnvironmentVariable = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) content.GetValueForProperty("EnvironmentVariable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).EnvironmentVariable, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariablesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).RuntimeVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion?) content.GetValueForProperty("RuntimeVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).RuntimeVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu = (string) content.GetValueForProperty("ResourceRequestCpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestCpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)this).ResourceRequestMemory = (string) content.GetValueForProperty("ResourceRequestMemory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal)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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentSettings.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.TypeConverter.cs new file mode 100644 index 000000000000..9bc8fb07345e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentSettings.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.cs new file mode 100644 index 000000000000..262e06c10233 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.cs @@ -0,0 +1,216 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment settings payload + public partial class DeploymentSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal + { + + /// Backing field for property. + private int? _cpu; + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? Cpu { get => this._cpu; set => this._cpu = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get => (this._environmentVariable = this._environmentVariable ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariables()); set => this._environmentVariable = value; } + + /// 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; } + + /// Backing field for property. + private int? _memoryInGb; + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public int? MemoryInGb { get => this._memoryInGb; set => this._memoryInGb = value; } + + /// Internal Acessors for ResourceRequest + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsInternal.ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceRequests()); set { {_resourceRequest = value;} } } + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceRequests ResourceRequest { get => (this._resourceRequest = this._resourceRequest ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceRequestsInternal)ResourceRequest).Cpu; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceRequestsInternal)ResourceRequest).Memory; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)ResourceRequest).Memory = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? _runtimeVersion; + + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? RuntimeVersion { get => this._runtimeVersion; set => this._runtimeVersion = value; } + + /// Creates an new instance. + public DeploymentSettings() + { + + } + } + /// Deployment settings payload + public partial interface IDeploymentSettings : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IJsonSerializable + { + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + int? Cpu { 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.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get; set; } + /// 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; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + int? MemoryInGb { get; set; } + /// 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; } + /// + /// 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; } + /// Runtime version + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? RuntimeVersion { get; set; } + + } + /// Deployment settings payload + internal partial interface IDeploymentSettingsInternal + + { + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + int? Cpu { get; set; } + /// Collection of environment variables + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables EnvironmentVariable { get; set; } + /// JVM parameter + string JvmOption { get; set; } + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + int? MemoryInGb { get; set; } + /// The path to the .NET executable relative to zip root + string NetCoreMainEntryPath { 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.Api20210601Preview.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; } + /// Runtime version + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion? RuntimeVersion { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.json.cs new file mode 100644 index 000000000000..32763a81a105 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettings.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ResourceRequests.FromJson(__jsonResourceRequests) : ResourceRequest;} + {_cpu = If( json?.PropertyT("cpu"), out var __jsonCpu) ? (int?)__jsonCpu : Cpu;} + {_memoryInGb = If( json?.PropertyT("memoryInGB"), out var __jsonMemoryInGb) ? (int?)__jsonMemoryInGb : MemoryInGb;} + {_jvmOption = If( json?.PropertyT("jvmOptions"), out var __jsonJvmOptions) ? (string)__jsonJvmOptions : (string)JvmOption;} + {_netCoreMainEntryPath = If( json?.PropertyT("netCoreMainEntryPath"), out var __jsonNetCoreMainEntryPath) ? (string)__jsonNetCoreMainEntryPath : (string)NetCoreMainEntryPath;} + {_environmentVariable = If( json?.PropertyT("environmentVariables"), out var __jsonEnvironmentVariables) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentSettingsEnvironmentVariables.FromJson(__jsonEnvironmentVariables) : EnvironmentVariable;} + {_runtimeVersion = If( json?.PropertyT("runtimeVersion"), out var __jsonRuntimeVersion) ? (string)__jsonRuntimeVersion : (string)RuntimeVersion;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettings. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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._cpu ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._cpu) : null, "cpu" ,container.Add ); + AddIf( null != this._memoryInGb ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNumber((int)this._memoryInGb) : null, "memoryInGB" ,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 ); + 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 != this._environmentVariable ? (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode) this._environmentVariable.ToJson(null,serializationMode) : null, "environmentVariables" ,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/Api20210601Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs new file mode 100644 index 000000000000..b0fd6136de4f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.PowerShell.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs new file mode 100644 index 000000000000..cc2cb0060fd3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.TypeConverter.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentSettingsEnvironmentVariables.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.cs new file mode 100644 index 000000000000..5396a9c06576 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.cs @@ -0,0 +1,30 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Collection of environment variables + public partial class DeploymentSettingsEnvironmentVariables : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs new file mode 100644 index 000000000000..2674808e5871 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.DeploymentSettingsEnvironmentVariables source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.json.cs new file mode 100644 index 000000000000..f22e41b753f3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/DeploymentSettingsEnvironmentVariables.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IDeploymentSettingsEnvironmentVariables. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Error.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.PowerShell.cs new file mode 100644 index 000000000000..777f908ee308 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/Error.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.TypeConverter.cs new file mode 100644 index 000000000000..8f2cbfd083d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Error.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.cs new file mode 100644 index 000000000000..d048fba0f097 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IError, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Error.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.json.cs new file mode 100644 index 000000000000..57a50b681ec9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Error.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IError. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/GitPatternRepository.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.PowerShell.cs new file mode 100644 index 000000000000..84f5a3b78196 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Git repository property payload + [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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Label, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Username, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Password, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Pattern = (string[]) content.GetValueForProperty("Pattern",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Pattern, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Uri = (string) content.GetValueForProperty("Uri",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Uri, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Label = (string) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Label, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).SearchPath = (string[]) content.GetValueForProperty("SearchPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).SearchPath, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Username = (string) content.GetValueForProperty("Username",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Username, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Password = (string) content.GetValueForProperty("Password",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).Password, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKey = (string) content.GetValueForProperty("HostKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm = (string) content.GetValueForProperty("HostKeyAlgorithm",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).HostKeyAlgorithm, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).PrivateKey = (string) content.GetValueForProperty("PrivateKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).PrivateKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepositoryInternal)this).StrictHostKeyChecking = (bool?) content.GetValueForProperty("StrictHostKeyChecking",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + [System.ComponentModel.TypeConverter(typeof(GitPatternRepositoryTypeConverter))] + public partial interface IGitPatternRepository + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.TypeConverter.cs new file mode 100644 index 000000000000..ec572232670a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/GitPatternRepository.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.cs new file mode 100644 index 000000000000..2d33916775d7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.cs @@ -0,0 +1,216 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload + public partial class GitPatternRepository : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + 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 + 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/Api20210601Preview/GitPatternRepository.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.json.cs new file mode 100644 index 000000000000..ea285535cd06 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/GitPatternRepository.json.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Git repository property payload + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IGitPatternRepository. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IGitPatternRepository. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogFileUrlResponse.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.PowerShell.cs new file mode 100644 index 000000000000..873e4da5dace --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogFileUrlResponseInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogFileUrlResponseInternal)this).Url = (string) content.GetValueForProperty("Url",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogFileUrlResponse.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.TypeConverter.cs new file mode 100644 index 000000000000..246c7d73b8b8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogFileUrlResponse ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogFileUrlResponse.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.cs new file mode 100644 index 000000000000..bc164805af79 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Log file URL payload + public partial class LogFileUrlResponse : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogFileUrlResponse, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogFileUrlResponse.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.json.cs new file mode 100644 index 000000000000..7970f4e8e67d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogFileUrlResponse.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ILogFileUrlResponse. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogFileUrlResponse. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.PowerShell.cs new file mode 100644 index 000000000000..2e9fb2a9bea3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecificationInternal)this).BlobDuration = (string) content.GetValueForProperty("BlobDuration",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.TypeConverter.cs new file mode 100644 index 000000000000..c68c18b3e0dc --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.cs new file mode 100644 index 000000000000..751f41711265 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ILogSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/LogSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.json.cs new file mode 100644 index 000000000000..30ab77318ab0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/LogSpecification.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ILogSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ManagedIdentityProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.PowerShell.cs new file mode 100644 index 000000000000..4a42bfcfea99 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).TenantId, 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 ManagedIdentityProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal)this).TenantId, 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(); + } + /// 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/Api20210601Preview/ManagedIdentityProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.TypeConverter.cs new file mode 100644 index 000000000000..aa3b704c968b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ManagedIdentityProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.cs new file mode 100644 index 000000000000..1674029e690c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IManagedIdentityProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityPropertiesInternal + { + + /// Backing field for property. + private string _principalId; + + /// Principal Id + [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 + [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; } + + /// 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 + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Principal Id", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// Tenant Id + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tenant Id", + 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; } + + } + /// Managed identity properties retrieved from ARM request headers. + internal partial interface IManagedIdentityPropertiesInternal + + { + /// Principal Id + string PrincipalId { get; set; } + /// Tenant Id + string TenantId { get; set; } + /// Type of the managed identity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ManagedIdentityType? Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.json.cs new file mode 100644 index 000000000000..94a68331f75e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ManagedIdentityProperties.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IManagedIdentityProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IManagedIdentityProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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;} + 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 ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.PowerShell.cs new file mode 100644 index 000000000000..5578eb60662f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).DisplayName, 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 MetricDimension(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimensionInternal)this).DisplayName, 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 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/Api20210601Preview/MetricDimension.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.TypeConverter.cs new file mode 100644 index 000000000000..d381799cc376 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimension ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MetricDimension.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.cs new file mode 100644 index 000000000000..2b1b0bac44d1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IMetricDimension, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + + /// 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; } + + } + /// 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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.json.cs new file mode 100644 index 000000000000..3684ffecadf7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricDimension.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IMetricDimension. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimension. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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;} + 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 ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.PowerShell.cs new file mode 100644 index 000000000000..a43cd6683f94 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Unit = (string) content.GetValueForProperty("Unit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Unit, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Category, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).AggregationType = (string) content.GetValueForProperty("AggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).AggregationType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedAggregationType = (string[]) content.GetValueForProperty("SupportedAggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedAggregationType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType = (string[]) content.GetValueForProperty("SupportedTimeGrainType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).FillGapWithZero = (bool?) content.GetValueForProperty("FillGapWithZero",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).FillGapWithZero, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Dimension = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimension[]) content.GetValueForProperty("Dimension",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Dimension, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricDimensionTypeConverter.ConvertFrom)); + 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Unit = (string) content.GetValueForProperty("Unit",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Unit, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Category = (string) content.GetValueForProperty("Category",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Category, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).AggregationType = (string) content.GetValueForProperty("AggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).AggregationType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedAggregationType = (string[]) content.GetValueForProperty("SupportedAggregationType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedAggregationType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType = (string[]) content.GetValueForProperty("SupportedTimeGrainType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).SupportedTimeGrainType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).FillGapWithZero = (bool?) content.GetValueForProperty("FillGapWithZero",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).FillGapWithZero, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Dimension = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricDimension[]) content.GetValueForProperty("Dimension",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecificationInternal)this).Dimension, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricDimensionTypeConverter.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(); + } + /// 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/Api20210601Preview/MetricSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.TypeConverter.cs new file mode 100644 index 000000000000..a4d802daabb9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MetricSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.cs new file mode 100644 index 000000000000..0b14424869da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.cs @@ -0,0 +1,217 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IMetricSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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[] _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.Api20210601Preview.IMetricDimension) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; } + /// 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.Api20210601Preview.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; } + /// 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/Api20210601Preview/MetricSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.json.cs new file mode 100644 index 000000000000..fb40aa1e31dd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MetricSpecification.json.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IMetricSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricDimension) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MetricDimension.FromJson(__k) )) ))() : null : Dimension;} + 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); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.PowerShell.cs new file mode 100644 index 000000000000..239d56550441 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.PowerShell.cs @@ -0,0 +1,149 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.TypeConverter.cs new file mode 100644 index 000000000000..ab98c92f64eb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.cs new file mode 100644 index 000000000000..d97dd6cd6d77 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.cs @@ -0,0 +1,190 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting properties payload + public partial class MonitoringSettingProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IApplicationInsightsAgentVersions AppInsightsAgentVersion { get => (this._appInsightsAgentVersion = this._appInsightsAgentVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IErrorInternal)Error).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)Error).Code = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IError Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IErrorInternal)Error).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IErrorInternal)Error).Message = value ?? null; } + + /// Internal Acessors for AppInsightAgentVersionJava + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal.AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersionsInternal)AppInsightsAgentVersion).Java = value; } + + /// Internal Acessors for AppInsightsAgentVersion + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal.AppInsightsAgentVersion { get => (this._appInsightsAgentVersion = this._appInsightsAgentVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersions()); set { {_appInsightsAgentVersion = value;} } } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal.Error { get => (this._error = this._error ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Error()); set { {_error = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/MonitoringSettingProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.json.cs new file mode 100644 index 000000000000..24261cf4e579 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingProperties.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IMonitoringSettingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.Error.FromJson(__jsonError) : Error;} + {_appInsightsAgentVersion = If( json?.PropertyT("appInsightsAgentVersions"), out var __jsonAppInsightsAgentVersions) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.PowerShell.cs new file mode 100644 index 000000000000..66c0dd45b56a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.PowerShell.cs @@ -0,0 +1,157 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Error = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError) content.GetValueForProperty("Error",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Error, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ErrorTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions) content.GetValueForProperty("AppInsightsAgentVersion",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsAgentVersion, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ApplicationInsightsAgentVersionsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).TraceEnabled = (bool?) content.GetValueForProperty("TraceEnabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).TraceEnabled, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey = (string) content.GetValueForProperty("AppInsightsInstrumentationKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsInstrumentationKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate = (double?) content.GetValueForProperty("AppInsightsSamplingRate",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightsSamplingRate, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Code = (string) content.GetValueForProperty("Code",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Code, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).Message, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal)this).AppInsightAgentVersionJava = (string) content.GetValueForProperty("AppInsightAgentVersionJava",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.TypeConverter.cs new file mode 100644 index 000000000000..17a67b5188fd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.cs new file mode 100644 index 000000000000..6a70eccb50ec --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.cs @@ -0,0 +1,216 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Monitoring Setting resource + public partial class MonitoringSettingResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsInstrumentationKey; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsSamplingRate; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).Code; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).Message; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).Message = value ?? null; } + + /// Internal Acessors for AppInsightAgentVersionJava + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal.AppInsightAgentVersionJava { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightAgentVersionJava; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightAgentVersionJava = value; } + + /// Internal Acessors for AppInsightsAgentVersion + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IApplicationInsightsAgentVersions Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal.AppInsightsAgentVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsAgentVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).AppInsightsAgentVersion = value; } + + /// Internal Acessors for Error + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IError Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal.Error { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).Error; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).Error = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.MonitoringSettingState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).ProvisioningState; } + + /// + /// 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.Api20210601Preview.IMonitoringSettingPropertiesInternal)Property).TraceEnabled; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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 < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IError Error { get; set; } + /// The message of error. + string Message { get; set; } + /// Properties of the Monitoring Setting resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/MonitoringSettingResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.json.cs new file mode 100644 index 000000000000..3eeee173cbad --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/MonitoringSettingResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IMonitoringSettingResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailability.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.PowerShell.cs new file mode 100644 index 000000000000..532e8bfae572 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Reason, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).NameAvailable = (bool?) content.GetValueForProperty("NameAvailable",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).NameAvailable, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Reason = (string) content.GetValueForProperty("Reason",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Reason, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityInternal)this).Message = (string) content.GetValueForProperty("Message",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailability.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.TypeConverter.cs new file mode 100644 index 000000000000..9468a44edda0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailability ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailability.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.cs new file mode 100644 index 000000000000..103f0ac1bbd4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability result payload + public partial class NameAvailability : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailability, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailability.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.json.cs new file mode 100644 index 000000000000..b304308d0553 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailability.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.INameAvailability. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailability. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailabilityParameters.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.PowerShell.cs new file mode 100644 index 000000000000..a02ec32a1e82 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParametersInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailabilityParameters.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.TypeConverter.cs new file mode 100644 index 000000000000..ce12c1646f68 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailabilityParameters.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.cs new file mode 100644 index 000000000000..4efa7ff6413f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Name availability parameters payload + public partial class NameAvailabilityParameters : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NameAvailabilityParameters.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.json.cs new file mode 100644 index 000000000000..466178b5ddfd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NameAvailabilityParameters.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.INameAvailabilityParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NetworkProfile.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.PowerShell.cs new file mode 100644 index 000000000000..bb64c5dc9436 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.PowerShell.cs @@ -0,0 +1,145 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("OutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId = (string) content.GetValueForProperty("ServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppSubnetId = (string) content.GetValueForProperty("AppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceCidr = (string) content.GetValueForProperty("ServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("ServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppNetworkResourceGroup = (string) content.GetValueForProperty("AppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).RequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("RequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).RequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIPPublicIP, __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 NetworkProfile(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("OutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId = (string) content.GetValueForProperty("ServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppSubnetId = (string) content.GetValueForProperty("AppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceCidr = (string) content.GetValueForProperty("ServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("ServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).ServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppNetworkResourceGroup = (string) content.GetValueForProperty("AppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).AppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).RequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("RequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).RequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal)this).OutboundIPPublicIP, __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(); + } + /// 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/Api20210601Preview/NetworkProfile.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.TypeConverter.cs new file mode 100644 index 000000000000..372d03985520 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NetworkProfile.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.cs new file mode 100644 index 000000000000..ac7b8fcc27f8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.cs @@ -0,0 +1,181 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service network profile payload + public partial class NetworkProfile : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal + { + + /// Backing field for property. + private string _appNetworkResourceGroup; + + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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 Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public string AppSubnetId { get => this._appSubnetId; set => this._appSubnetId = value; } + + /// Internal Acessors for OutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal.OutboundIP { get => (this._outboundIP = this._outboundIP ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPs()); set { {_outboundIP = value;} } } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP = value; } + + /// Internal Acessors for RequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileInternal.RequiredTraffic { get => this._requiredTraffic; set { {_requiredTraffic = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs _outboundIP; + + /// Desired outbound IP resources for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs OutboundIP { get => (this._outboundIP = this._outboundIP ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.INetworkProfileOutboundIPsInternal)OutboundIP).PublicIP; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] _requiredTraffic; + + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] RequiredTraffic { get => this._requiredTraffic; } + + /// Backing field for property. + private string _serviceCidr; + + /// Azure Spring Cloud 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 Cloud 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 Cloud 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 of Azure Spring Cloud Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Cloud Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string AppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string AppSubnetId { 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; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Cloud instance.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] RequiredTraffic { get; } + /// Azure Spring Cloud service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Cloud service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string ServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string ServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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 of Azure Spring Cloud Apps + /// + string AppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + string AppSubnetId { get; set; } + /// Desired outbound IP resources for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs OutboundIP { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { get; set; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] RequiredTraffic { get; set; } + /// Azure Spring Cloud service reserved CIDR + string ServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Service Runtime + /// + string ServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime + /// + string ServiceRuntimeSubnetId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.json.cs new file mode 100644 index 000000000000..8050c849f39b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfile.json.cs @@ -0,0 +1,127 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.INetworkProfile. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.NetworkProfileOutboundIPs.FromJson(__jsonOutboundIPs) : OutboundIP;} + {_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.Api20210601Preview.IRequiredTraffic) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTraffic.FromJson(__u) )) ))() : null : RequiredTraffic;} + 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 != (((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); + } + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.PowerShell.cs new file mode 100644 index 000000000000..5a3e0da9b534 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Desired outbound IP resources for Azure Spring Cloud instance. + [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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPsInternal)this).PublicIP = (string[]) content.GetValueForProperty("PublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPsInternal)this).PublicIP = (string[]) content.GetValueForProperty("PublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud instance. + [System.ComponentModel.TypeConverter(typeof(NetworkProfileOutboundIPsTypeConverter))] + public partial interface INetworkProfileOutboundIPs + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.TypeConverter.cs new file mode 100644 index 000000000000..589216e6d34f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/NetworkProfileOutboundIPs.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.cs new file mode 100644 index 000000000000..25f40c8bf5f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.cs @@ -0,0 +1,49 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Desired outbound IP resources for Azure Spring Cloud instance. + public partial class NetworkProfileOutboundIPs : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPsInternal + { + + /// Internal Acessors for PublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud instance. + 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 Cloud instance. + 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/Api20210601Preview/NetworkProfileOutboundIPs.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.json.cs new file mode 100644 index 000000000000..cce6558646af --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/NetworkProfileOutboundIPs.json.cs @@ -0,0 +1,112 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Desired outbound IP resources for Azure Spring Cloud instance. + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.INetworkProfileOutboundIPs. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDetail.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.PowerShell.cs new file mode 100644 index 000000000000..c7e2fb738e3a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.PowerShell.cs @@ -0,0 +1,153 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDisplayTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDisplayTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationPropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).Origin, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayProvider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayResource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayOperation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).DisplayDescription, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDetail.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.TypeConverter.cs new file mode 100644 index 000000000000..e013c0a6ef99 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetail ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDetail.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.cs new file mode 100644 index 000000000000..4b3db7685ab0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.cs @@ -0,0 +1,193 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation detail payload + public partial class OperationDetail : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetail, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDisplay Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDisplayInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDisplayInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDisplayInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationDisplayInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Display + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationDisplay()); set { {_display = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.OperationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetailInternal.ServiceSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)Property).ServiceSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IOperationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)Property).ServiceSpecificationLogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)Property).ServiceSpecificationMetricSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + { + /// 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.Api20210601Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } + /// Operation detail payload + internal partial interface IOperationDetailInternal + + { + /// Display of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IOperationProperties Property { get; set; } + /// Service specifications of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.json.cs new file mode 100644 index 000000000000..79fb9f1f6a39 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDetail.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IOperationDetail. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDetail. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.OperationDisplay.FromJson(__jsonDisplay) : Display;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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;} + {_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 ); + 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/Api20210601Preview/OperationDisplay.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.PowerShell.cs new file mode 100644 index 000000000000..3ace480f1348 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Provider, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Resource, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Operation, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplayInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDisplay.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.TypeConverter.cs new file mode 100644 index 000000000000..3bcb976d91a3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDisplay.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.cs new file mode 100644 index 000000000000..0e8c3733502c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Operation display payload + public partial class OperationDisplay : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationDisplay.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.json.cs new file mode 100644 index 000000000000..bae5acfd40fb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationDisplay.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IOperationDisplay. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationDisplay. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationProperties.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.PowerShell.cs new file mode 100644 index 000000000000..b06c257344db --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification) content.GetValueForProperty("ServiceSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecification, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceSpecificationTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("ServiceSpecificationLogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationLogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("ServiceSpecificationMetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal)this).ServiceSpecificationMetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationProperties.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.TypeConverter.cs new file mode 100644 index 000000000000..406cab3d0ee7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/OperationProperties.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.cs new file mode 100644 index 000000000000..7e235136a643 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.cs @@ -0,0 +1,69 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Extra Operation properties + public partial class OperationProperties : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal + { + + /// Internal Acessors for ServiceSpecification + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationPropertiesInternal.ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceSpecification()); set { {_serviceSpecification = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IServiceSpecification ServiceSpecification { get => (this._serviceSpecification = this._serviceSpecification ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)ServiceSpecification).LogSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)ServiceSpecification).MetricSpecification; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } + /// Extra Operation properties + internal partial interface IOperationPropertiesInternal + + { + /// Service specifications of the operation + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification ServiceSpecification { get; set; } + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[] ServiceSpecificationLogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] ServiceSpecificationMetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.json.cs new file mode 100644 index 000000000000..819cda83d794 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/OperationProperties.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IOperationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IOperationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/PersistentDisk.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.PowerShell.cs new file mode 100644 index 000000000000..ef7b315db790 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).UsedInGb = (int?) content.GetValueForProperty("UsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).UsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).UsedInGb = (int?) content.GetValueForProperty("UsedInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).UsedInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/PersistentDisk.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.TypeConverter.cs new file mode 100644 index 000000000000..1fc76ef7a1e8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/PersistentDisk.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.cs new file mode 100644 index 000000000000..4dca43d79837 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.cs @@ -0,0 +1,83 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Persistent disk payload + public partial class PersistentDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDiskInternal + { + + /// Internal Acessors for UsedInGb + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/PersistentDisk.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.json.cs new file mode 100644 index 000000000000..4319705510b3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/PersistentDisk.json.cs @@ -0,0 +1,108 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IPersistentDisk. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IPersistentDisk. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ProxyResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.PowerShell.cs new file mode 100644 index 000000000000..66c817ec0e76 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ProxyResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.TypeConverter.cs new file mode 100644 index 000000000000..7d72f29a20f4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IProxyResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ProxyResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.cs new file mode 100644 index 000000000000..7e9302ebc01b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.cs @@ -0,0 +1,71 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IProxyResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IProxyResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// 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.Api20210601Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ProxyResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.IResourceInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.json.cs new file mode 100644 index 000000000000..635a65f504ae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ProxyResource.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IProxyResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IProxyResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/RegenerateTestKeyRequestPayload.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.PowerShell.cs new file mode 100644 index 000000000000..5523d7dfcc47 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) content.GetValueForProperty("KeyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayloadInternal)this).KeyType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TestKeyType) content.GetValueForProperty("KeyType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs new file mode 100644 index 000000000000..f4240fcc08f6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/RegenerateTestKeyRequestPayload.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.cs new file mode 100644 index 000000000000..083f83234556 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.cs @@ -0,0 +1,46 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Regenerate test key request payload + public partial class RegenerateTestKeyRequestPayload : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/RegenerateTestKeyRequestPayload.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.json.cs new file mode 100644 index 000000000000..fa9cef459229 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RegenerateTestKeyRequestPayload.json.cs @@ -0,0 +1,101 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IRegenerateTestKeyRequestPayload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/RequiredTraffic.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.PowerShell.cs new file mode 100644 index 000000000000..ba070be7e9ae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Required inbound or outbound traffic for Azure Spring Cloud instance. + [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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Protocol = (string) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Protocol, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).IP = (string[]) content.GetValueForProperty("IP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).IP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Fqdn = (string[]) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Fqdn, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Direction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection?) content.GetValueForProperty("Direction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Protocol = (string) content.GetValueForProperty("Protocol",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Protocol, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Port = (int?) content.GetValueForProperty("Port",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Port, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).IP = (string[]) content.GetValueForProperty("IP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).IP, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Fqdn = (string[]) content.GetValueForProperty("Fqdn",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Fqdn, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal)this).Direction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.TrafficDirection?) content.GetValueForProperty("Direction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud instance. + [System.ComponentModel.TypeConverter(typeof(RequiredTrafficTypeConverter))] + public partial interface IRequiredTraffic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.TypeConverter.cs new file mode 100644 index 000000000000..354ede2f46c7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/RequiredTraffic.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.cs new file mode 100644 index 000000000000..e326d83d22d9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.cs @@ -0,0 +1,129 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Required inbound or outbound traffic for Azure Spring Cloud instance. + public partial class RequiredTraffic : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IRequiredTrafficInternal.Direction { get => this._direction; set { {_direction = value;} } } + + /// Internal Acessors for Fqdn + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal.Fqdn { get => this._fqdn; set { {_fqdn = value;} } } + + /// Internal Acessors for IP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal.IP { get => this._iP; set { {_iP = value;} } } + + /// Internal Acessors for Port + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTrafficInternal.Port { get => this._port; set { {_port = value;} } } + + /// Internal Acessors for Protocol + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud instance. + 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 Cloud instance. + 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/Api20210601Preview/RequiredTraffic.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.json.cs new file mode 100644 index 000000000000..8c3a48fe3cb6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/RequiredTraffic.json.cs @@ -0,0 +1,140 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Required inbound or outbound traffic for Azure Spring Cloud instance. + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IRequiredTraffic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Resource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.PowerShell.cs new file mode 100644 index 000000000000..82eeb14e5358 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 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/Api20210601Preview/Resource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.TypeConverter.cs new file mode 100644 index 000000000000..5afd80e0a06a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Resource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.cs new file mode 100644 index 000000000000..2da12a71d02c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.cs @@ -0,0 +1,89 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 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 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; } + /// The type of the resource. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.json.cs new file mode 100644 index 000000000000..e3f550f4d46b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Resource.json.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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; + } + {_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 != (((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/Api20210601Preview/ResourceRequests.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.PowerShell.cs new file mode 100644 index 000000000000..8f710808494a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Cpu = (string) content.GetValueForProperty("Cpu",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Cpu, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequestsInternal)this).Memory = (string) content.GetValueForProperty("Memory",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceRequests.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.TypeConverter.cs new file mode 100644 index 000000000000..4dc407f5ab81 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceRequests.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.cs new file mode 100644 index 000000000000..8c2105eb8d4e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.cs @@ -0,0 +1,81 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Deployment resource request payload + public partial class ResourceRequests : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceRequests.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.json.cs new file mode 100644 index 000000000000..a94df8a11e0d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceRequests.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceRequests. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceRequests. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSku.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.PowerShell.cs new file mode 100644 index 000000000000..cac5447404ae --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.PowerShell.cs @@ -0,0 +1,151 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Describes an available Azure Spring Cloud 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuCapacityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Tier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfo[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuLocationInfoTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictions[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionsTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMaximum = (int?) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityDefault = (int?) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Capacity = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Capacity, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuCapacityTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).ResourceType = (string) content.GetValueForProperty("ResourceType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).ResourceType, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Tier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).LocationInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfo[]) content.GetValueForProperty("LocationInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).LocationInfo, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuLocationInfoTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Restriction = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictions[]) content.GetValueForProperty("Restriction",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).Restriction, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionsTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMinimum = (int) content.GetValueForProperty("CapacityMinimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMinimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMaximum = (int?) content.GetValueForProperty("CapacityMaximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityMaximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityDefault = (int?) content.GetValueForProperty("CapacityDefault",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityDefault, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal)this).CapacityScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("CapacityScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud SKU. + [System.ComponentModel.TypeConverter(typeof(ResourceSkuTypeConverter))] + public partial interface IResourceSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.TypeConverter.cs new file mode 100644 index 000000000000..f258d77e477b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSku.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.cs new file mode 100644 index 000000000000..5135c33eb182 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.cs @@ -0,0 +1,215 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Describes an available Azure Spring Cloud SKU. + public partial class ResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuCapacity Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuCapacityInternal)Capacity).Default; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuCapacityInternal)Capacity).Maximum; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuCapacityInternal)Capacity).Minimum; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuCapacityInternal)Capacity).ScaleType; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSkuLocationInfo[] LocationInfo { get => this._locationInfo; set => this._locationInfo = value; } + + /// Internal Acessors for Capacity + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuInternal.Capacity { get => (this._capacity = this._capacity ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 Cloud 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.Api20210601Preview.IResourceSkuLocationInfo) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuRestrictions) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud SKU. + internal partial interface IResourceSkuInternal + + { + /// Gets the capacity of SKU. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ResourceSku.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.json.cs new file mode 100644 index 000000000000..5175159cd2aa --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSku.json.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Describes an available Azure Spring Cloud 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSkuLocationInfo) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuRestrictions) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCapabilities.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.PowerShell.cs new file mode 100644 index 000000000000..923a35611269 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilitiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCapabilities.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.TypeConverter.cs new file mode 100644 index 000000000000..0d747be99a5c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCapabilities.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.cs new file mode 100644 index 000000000000..9372cb5e16c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.cs @@ -0,0 +1,60 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + public partial class ResourceSkuCapabilities : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilities, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCapabilities.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.json.cs new file mode 100644 index 000000000000..7489cb55a1f0 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCapabilities.json.cs @@ -0,0 +1,102 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuCapabilities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCollection.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.PowerShell.cs new file mode 100644 index 000000000000..d282ebd03932 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// + /// Object that includes an array of Azure Spring Cloud 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollectionInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud 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/Api20210601Preview/ResourceSkuCollection.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.TypeConverter.cs new file mode 100644 index 000000000000..1fe40e72d401 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuCollection.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.cs new file mode 100644 index 000000000000..8d1ab2502fd2 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.cs @@ -0,0 +1,75 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Azure Spring Cloud SKU and a possible link for next set + /// + public partial class ResourceSkuCollection : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollection, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSku[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ResourceSkuCollection() + { + + } + } + /// Object that includes an array of Azure Spring Cloud 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.Api20210601Preview.IResourceSku) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSku[] Value { get; set; } + + } + /// Object that includes an array of Azure Spring Cloud 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.Api20210601Preview.IResourceSku[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.json.cs new file mode 100644 index 000000000000..a16f88feb75b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuCollection.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// + /// Object that includes an array of Azure Spring Cloud 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuCollection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCollection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSku) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuLocationInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.PowerShell.cs new file mode 100644 index 000000000000..a1499472a70e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetails[]) content.GetValueForProperty("ZoneDetail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).Zone, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetails[]) content.GetValueForProperty("ZoneDetail",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfoInternal)this).ZoneDetail, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuLocationInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.TypeConverter.cs new file mode 100644 index 000000000000..c3bc65bdd5ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuLocationInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.cs new file mode 100644 index 000000000000..3de6dbc19da5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IResourceSkuLocationInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSkuZoneDetails) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuZoneDetails[] ZoneDetail { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.json.cs new file mode 100644 index 000000000000..943d23e67898 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuLocationInfo.json.cs @@ -0,0 +1,121 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuLocationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuLocationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuZoneDetails) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictionInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.PowerShell.cs new file mode 100644 index 000000000000..2e356edb3621 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Location = (string[]) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Location, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfoInternal)this).Zone = (string[]) content.GetValueForProperty("Zone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictionInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.TypeConverter.cs new file mode 100644 index 000000000000..567ac54e1c57 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictionInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.cs new file mode 100644 index 000000000000..fa5b850cca09 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IResourceSkuRestrictionInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictionInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.json.cs new file mode 100644 index 000000000000..e01cb0e98dc5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictionInfo.json.cs @@ -0,0 +1,119 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuRestrictionInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictions.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.PowerShell.cs new file mode 100644 index 000000000000..d5a28ae5a176 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.PowerShell.cs @@ -0,0 +1,143 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfo) content.GetValueForProperty("RestrictionInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).ReasonCode = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode?) content.GetValueForProperty("ReasonCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).ReasonCode, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation = (string[]) content.GetValueForProperty("RestrictionInfoLocation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone = (string[]) content.GetValueForProperty("RestrictionInfoZone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfo) content.GetValueForProperty("RestrictionInfo",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfo, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ResourceSkuRestrictionInfoTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).ReasonCode = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode?) content.GetValueForProperty("ReasonCode",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).ReasonCode, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ResourceSkuRestrictionsReasonCode.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation = (string[]) content.GetValueForProperty("RestrictionInfoLocation",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal)this).RestrictionInfoZone = (string[]) content.GetValueForProperty("RestrictionInfoZone",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictions.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.TypeConverter.cs new file mode 100644 index 000000000000..07f1540393bd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictions ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictions.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.cs new file mode 100644 index 000000000000..d6eb17bf8a7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.cs @@ -0,0 +1,136 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IResourceSkuRestrictions, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal + { + + /// Internal Acessors for RestrictionInfo + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionInfo Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictionsInternal.RestrictionInfo { get => (this._restrictionInfo = this._restrictionInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSkuRestrictionInfo RestrictionInfo { get => (this._restrictionInfo = this._restrictionInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuRestrictionInfoInternal)RestrictionInfo).Zone; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ResourceSkuRestrictions.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.json.cs new file mode 100644 index 000000000000..94e86aee195b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuRestrictions.json.cs @@ -0,0 +1,115 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuRestrictions. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuRestrictions. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ResourceSkuZoneDetails.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.PowerShell.cs new file mode 100644 index 000000000000..6b3e3eb6f972 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Name = (string[]) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Name, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Capability = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilities[]) content.GetValueForProperty("Capability",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Capability, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Name = (string[]) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Name, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Capability = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuCapabilities[]) content.GetValueForProperty("Capability",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal)this).Capability, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuZoneDetails.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.TypeConverter.cs new file mode 100644 index 000000000000..6936730ab880 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetails ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceSkuZoneDetails.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.cs new file mode 100644 index 000000000000..a25d497831e1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.cs @@ -0,0 +1,83 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IResourceSkuZoneDetails, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetailsInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceSkuCapabilities) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/ResourceSkuZoneDetails.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.json.cs new file mode 100644 index 000000000000..32e65dbebcb6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceSkuZoneDetails.json.cs @@ -0,0 +1,119 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceSkuZoneDetails. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceSkuZoneDetails. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceSkuCapabilities) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceUploadDefinition.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.PowerShell.cs new file mode 100644 index 000000000000..2277ed5cac31 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).RelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).UploadUrl = (string) content.GetValueForProperty("UploadUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).RelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinitionInternal)this).UploadUrl = (string) content.GetValueForProperty("UploadUrl",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceUploadDefinition.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.TypeConverter.cs new file mode 100644 index 000000000000..4beee4207f7b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinition ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceUploadDefinition.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.cs new file mode 100644 index 000000000000..abafe031d372 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Resource upload definition payload + public partial class ResourceUploadDefinition : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinition, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ResourceUploadDefinition.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.json.cs new file mode 100644 index 000000000000..43285b399b5c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ResourceUploadDefinition.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IResourceUploadDefinition. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceUploadDefinition. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.PowerShell.cs new file mode 100644 index 000000000000..6876a63cbe32 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.PowerShell.cs @@ -0,0 +1,173 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuTier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ServiceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).OutboundIPPublicIP, __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 ServiceResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourcePropertiesTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.SkuTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfile = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile) content.GetValueForProperty("NetworkProfile",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfile, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuName = (string) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuName, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuTier = (string) content.GetValueForProperty("SkuTier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuTier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Version = (int?) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).Version, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ServiceId = (string) content.GetValueForProperty("ServiceId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).ServiceId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr = (string) content.GetValueForProperty("NetworkProfileServiceCidr",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceCidr, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[]) content.GetValueForProperty("NetworkProfileRequiredTraffic",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileRequiredTraffic, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RequiredTrafficTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuCapacity = (int?) content.GetValueForProperty("SkuCapacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).SkuCapacity, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs) content.GetValueForProperty("NetworkProfileOutboundIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileOutboundIP, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NetworkProfileOutboundIPsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId = (string) content.GetValueForProperty("NetworkProfileAppSubnetId",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppSubnetId, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileServiceRuntimeNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileServiceRuntimeNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup = (string) content.GetValueForProperty("NetworkProfileAppNetworkResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).NetworkProfileAppNetworkResourceGroup, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).OutboundIPPublicIP = (string[]) content.GetValueForProperty("OutboundIPPublicIP",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal)this).OutboundIPPublicIP, __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(); + } + /// 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/Api20210601Preview/ServiceResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.TypeConverter.cs new file mode 100644 index 000000000000..5e27bbf29fcd --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.cs new file mode 100644 index 000000000000..543b3bcb31c3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.cs @@ -0,0 +1,328 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service resource + public partial class ServiceResource : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResource(); + + /// 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.Api20210601Preview.IResourceInternal)__trackedResource).Id; } + + /// 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.Api20210601Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)__trackedResource).Location = value ?? null; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Internal Acessors for NetworkProfile + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.NetworkProfile { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfile; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfile = value; } + + /// Internal Acessors for NetworkProfileOutboundIP + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.NetworkProfileOutboundIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileOutboundIP = value; } + + /// Internal Acessors for NetworkProfileRequiredTraffic + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic = value; } + + /// Internal Acessors for OutboundIPPublicIP + string[] Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.OutboundIPPublicIP { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourceProperties Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.ProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for ServiceId + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.ServiceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).ServiceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).ServiceId = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.Sku()); set { {_sku = value;} } } + + /// Internal Acessors for Version + int? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceInternal.Version { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).Version; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).Version = 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.Api20210601Preview.IResourceInternal)__trackedResource).Name; } + + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppNetworkResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppNetworkResourceGroup = value ?? null; } + + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public string NetworkProfileAppSubnetId { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileAppSubnetId = value ?? null; } + + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileRequiredTraffic; } + + /// Azure Spring Cloud 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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceCidr; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceCidr = value ?? null; } + + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeNetworkResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeNetworkResourceGroup = value ?? null; } + + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud 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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).NetworkProfileServiceRuntimeSubnetId; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).OutboundIPPublicIP; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IClusterResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).ServiceId; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Capacity; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ISkuInternal)Sku).Tier; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)Sku).Tier = value ?? null; } + + /// + /// 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.Api20210601Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IClusterResourcePropertiesInternal)Property).Version; } + + /// Creates an new instance. + public ServiceResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ITrackedResource + { + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource group containing network resources of Azure Spring Cloud Apps", + SerializedName = @"appNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileAppSubnetId { get; set; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Required inbound or outbound traffics for Azure Spring Cloud instance.", + SerializedName = @"requiredTraffics", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; } + /// Azure Spring Cloud service reserved CIDR + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Spring Cloud service reserved CIDR", + SerializedName = @"serviceCidr", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud Service Runtime", + SerializedName = @"serviceRuntimeNetworkResourceGroup", + PossibleTypes = new [] { typeof(string) })] + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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; } + /// 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; } + + } + /// Service resource + internal partial interface IServiceResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal + { + /// Network profile of the Service + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfile NetworkProfile { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Apps + /// + string NetworkProfileAppNetworkResourceGroup { get; set; } + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Apps + string NetworkProfileAppSubnetId { get; set; } + /// Desired outbound IP resources for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INetworkProfileOutboundIPs NetworkProfileOutboundIP { get; set; } + /// Required inbound or outbound traffics for Azure Spring Cloud instance. + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRequiredTraffic[] NetworkProfileRequiredTraffic { get; set; } + /// Azure Spring Cloud service reserved CIDR + string NetworkProfileServiceCidr { get; set; } + /// + /// Name of the resource group containing network resources of Azure Spring Cloud Service Runtime + /// + string NetworkProfileServiceRuntimeNetworkResourceGroup { get; set; } + /// + /// Fully qualified resource Id of the subnet to host Azure Spring Cloud Service Runtime + /// + string NetworkProfileServiceRuntimeSubnetId { get; set; } + /// A list of public IP addresses. + string[] OutboundIPPublicIP { get; set; } + /// Properties of the Service resource + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.json.cs new file mode 100644 index 000000000000..4a79da80670f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResource.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IServiceResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ClusterResourceProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceResourceList.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.PowerShell.cs new file mode 100644 index 000000000000..1801cf505274 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResourceTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceListInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceResourceList.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.TypeConverter.cs new file mode 100644 index 000000000000..5f3e4958d0c6 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceList ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceResourceList.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.cs new file mode 100644 index 000000000000..089ff6be1415 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.cs @@ -0,0 +1,75 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.IServiceResourceList, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IServiceResource) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IServiceResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.json.cs new file mode 100644 index 000000000000..a26636488e6f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceResourceList.json.cs @@ -0,0 +1,113 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IServiceResourceList. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResourceList. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IServiceResource) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceSpecification.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.PowerShell.cs new file mode 100644 index 000000000000..badf560142ba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).MetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("MetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).MetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).LogSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[]) content.GetValueForProperty("LogSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).LogSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.LogSpecificationTypeConverter.ConvertFrom)); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).MetricSpecification = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[]) content.GetValueForProperty("MetricSpecification",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal)this).MetricSpecification, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceSpecification.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.TypeConverter.cs new file mode 100644 index 000000000000..df1207aec2da --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/ServiceSpecification.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.cs new file mode 100644 index 000000000000..383cd533ae9e --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Service specification payload + public partial class ServiceSpecification : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecificationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ILogSpecification[] LogSpecification { get => this._logSpecification; set => this._logSpecification = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ILogSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] MetricSpecification { get; set; } + + } + /// Service specification payload + internal partial interface IServiceSpecificationInternal + + { + /// Specifications of the Log for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ILogSpecification[] LogSpecification { get; set; } + /// Specifications of the Metrics for Azure Monitoring + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMetricSpecification[] MetricSpecification { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.json.cs new file mode 100644 index 000000000000..32fec2999179 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/ServiceSpecification.json.cs @@ -0,0 +1,119 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IServiceSpecification. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceSpecification. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ILogSpecification) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IMetricSpecification) (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Sku.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.PowerShell.cs new file mode 100644 index 000000000000..3b409af2a7ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.PowerShell.cs @@ -0,0 +1,135 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.PowerShell; + + /// Sku of Azure Spring Cloud + [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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Tier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Tier = (string) content.GetValueForProperty("Tier",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Tier, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuInternal)this).Capacity = (int?) content.GetValueForProperty("Capacity",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud + [System.ComponentModel.TypeConverter(typeof(SkuTypeConverter))] + public partial interface ISku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.TypeConverter.cs new file mode 100644 index 000000000000..339e2c615b2d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/Sku.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.cs new file mode 100644 index 000000000000..49f97f34102d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sku of Azure Spring Cloud + public partial class Sku : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 Cloud + 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 Cloud + 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/Api20210601Preview/Sku.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.json.cs new file mode 100644 index 000000000000..b58eff6ac935 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/Sku.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Sku of Azure Spring Cloud + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ISku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SkuCapacity.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.PowerShell.cs new file mode 100644 index 000000000000..3311a82c9d86 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Maximum = (int?) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Default = (int?) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Minimum = (int) content.GetValueForProperty("Minimum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Minimum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Maximum = (int?) content.GetValueForProperty("Maximum",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Maximum, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Default = (int?) content.GetValueForProperty("Default",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).Default, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacityInternal)this).ScaleType = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SkuScaleType?) content.GetValueForProperty("ScaleType",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SkuCapacity.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.TypeConverter.cs new file mode 100644 index 000000000000..76b46c6976ba --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SkuCapacity.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.cs new file mode 100644 index 000000000000..b0ca1ef4ec53 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.cs @@ -0,0 +1,97 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// The SKU capacity + public partial class SkuCapacity : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SkuCapacity.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.json.cs new file mode 100644 index 000000000000..644678887e7d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SkuCapacity.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ISkuCapacity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISkuCapacity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SupportedRuntimeVersion.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.PowerShell.cs new file mode 100644 index 000000000000..d063983b7151 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Value, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform?) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Value, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimeValue.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Platform = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform?) content.GetValueForProperty("Platform",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Platform, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.SupportedRuntimePlatform.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersionInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SupportedRuntimeVersion.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.TypeConverter.cs new file mode 100644 index 000000000000..b2bb9061166c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SupportedRuntimeVersion.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.cs new file mode 100644 index 000000000000..1f08888311d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.cs @@ -0,0 +1,80 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Supported deployment runtime version descriptor. + public partial class SupportedRuntimeVersion : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/SupportedRuntimeVersion.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.json.cs new file mode 100644 index 000000000000..bd40bd29a929 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/SupportedRuntimeVersion.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ISupportedRuntimeVersion. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ISupportedRuntimeVersion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TemporaryDisk.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.PowerShell.cs new file mode 100644 index 000000000000..619634f3af51 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.PowerShell.cs @@ -0,0 +1,133 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).SizeInGb = (int?) content.GetValueForProperty("SizeInGb",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).SizeInGb, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDiskInternal)this).MountPath = (string) content.GetValueForProperty("MountPath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TemporaryDisk.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.TypeConverter.cs new file mode 100644 index 000000000000..f4592e9e939a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TemporaryDisk.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.cs new file mode 100644 index 000000000000..840e9451c357 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.cs @@ -0,0 +1,63 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Temporary disk payload + public partial class TemporaryDisk : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TemporaryDisk.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.json.cs new file mode 100644 index 000000000000..719455b49c31 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TemporaryDisk.json.cs @@ -0,0 +1,103 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ITemporaryDisk. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITemporaryDisk. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TestKeys.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.PowerShell.cs new file mode 100644 index 000000000000..e2d1c9a26948 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryKey = (string) content.GetValueForProperty("PrimaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryKey = (string) content.GetValueForProperty("SecondaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryTestEndpoint = (string) content.GetValueForProperty("PrimaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryTestEndpoint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryTestEndpoint = (string) content.GetValueForProperty("SecondaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryTestEndpoint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryKey = (string) content.GetValueForProperty("PrimaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryKey = (string) content.GetValueForProperty("SecondaryKey",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryKey, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryTestEndpoint = (string) content.GetValueForProperty("PrimaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).PrimaryTestEndpoint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryTestEndpoint = (string) content.GetValueForProperty("SecondaryTestEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).SecondaryTestEndpoint, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeysInternal)this).Enabled = (bool?) content.GetValueForProperty("Enabled",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TestKeys.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.TypeConverter.cs new file mode 100644 index 000000000000..cc3e353a2941 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeys ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TestKeys.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.cs new file mode 100644 index 000000000000..2cbb49822ef5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.cs @@ -0,0 +1,114 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Test keys payload + public partial class TestKeys : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeys, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TestKeys.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.json.cs new file mode 100644 index 000000000000..fbb892662bbe --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TestKeys.json.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ITestKeys. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITestKeys. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TrackedResource.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.PowerShell.cs new file mode 100644 index 000000000000..de30bf9d177c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.PowerShell.cs @@ -0,0 +1,139 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TrackedResource.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.TypeConverter.cs new file mode 100644 index 000000000000..28f6ad94dfcf --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TrackedResource.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.cs new file mode 100644 index 000000000000..51cf28b43dc3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.cs @@ -0,0 +1,109 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ITrackedResource, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.ITrackedResourceTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public TrackedResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A < see cref = "global::System.Threading.Tasks.Task" /> that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.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.Api20210601Preview.ITrackedResourceTags) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ITrackedResourceTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.json.cs new file mode 100644 index 000000000000..5e8926b3d30d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResource.json.cs @@ -0,0 +1,105 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ITrackedResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.TrackedResourceTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.PowerShell.cs new file mode 100644 index 000000000000..5a9676b17b25 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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/Api20210601Preview/TrackedResourceTags.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.TypeConverter.cs new file mode 100644 index 000000000000..816b15dac4ee --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TrackedResourceTags.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.cs new file mode 100644 index 000000000000..5493c57d669c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.cs @@ -0,0 +1,32 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.ITrackedResourceTags, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/TrackedResourceTags.dictionary.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.dictionary.cs new file mode 100644 index 000000000000..b71afcf24f44 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.dictionary.cs @@ -0,0 +1,70 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.TrackedResourceTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.json.cs new file mode 100644 index 000000000000..49fffc6ffdc8 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/TrackedResourceTags.json.cs @@ -0,0 +1,104 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.ITrackedResourceTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/UserSourceInfo.PowerShell.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.PowerShell.cs new file mode 100644 index 000000000000..f91ae052d3a4 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.PowerShell.cs @@ -0,0 +1,137 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).RelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).ArtifactSelector = (string) content.GetValueForProperty("ArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).ArtifactSelector, 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 + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType.CreateFrom); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).RelativePath = (string) content.GetValueForProperty("RelativePath",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).RelativePath, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Version = (string) content.GetValueForProperty("Version",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).Version, global::System.Convert.ToString); + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).ArtifactSelector = (string) content.GetValueForProperty("ArtifactSelector",((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal)this).ArtifactSelector, 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/Api20210601Preview/UserSourceInfo.TypeConverter.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.TypeConverter.cs new file mode 100644 index 000000000000..abac6c165b9b --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.TypeConverter.cs @@ -0,0 +1,142 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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/Api20210601Preview/UserSourceInfo.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.cs new file mode 100644 index 000000000000..0ff393c28ed1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// Source information for a deployment + public partial class UserSourceInfo : + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo, + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfoInternal + { + + /// 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; } + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? _type; + + /// Type of the source uploaded + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Origin(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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 + { + /// + /// 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; } + /// 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; } + /// 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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 + + { + /// + /// 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; } + /// Relative path of the storage which stores the source + string RelativePath { get; set; } + /// Type of the source uploaded + Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType? 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/Api20210601Preview/UserSourceInfo.json.cs b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.json.cs new file mode 100644 index 000000000000..666059f86027 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/Api20210601Preview/UserSourceInfo.json.cs @@ -0,0 +1,107 @@ +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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.Api20210601Preview.IUserSourceInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IUserSourceInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Json.JsonObject json ? new UserSourceInfo(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._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._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._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._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 ); + 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;} + {_relativePath = If( json?.PropertyT("relativePath"), out var __jsonRelativePath) ? (string)__jsonRelativePath : (string)RelativePath;} + {_version = If( json?.PropertyT("version"), out var __jsonVersion) ? (string)__jsonVersion : (string)Version;} + {_artifactSelector = If( json?.PropertyT("artifactSelector"), out var __jsonArtifactSelector) ? (string)__jsonArtifactSelector : (string)ArtifactSelector;} + 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..e4de9b663560 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.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 +{ + 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 + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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 + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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); + ((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..4f2c699d00a7 --- /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 + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + // we allow string conversion too. + if (type == typeof(global::System.String)) + { + return true; + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.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 to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.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..46935cad6aea --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.cs @@ -0,0 +1,219 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.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 _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 _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 _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 _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 _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 _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 _resourceGroupName; + + /// + /// 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 _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 _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 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 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 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 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 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; } + /// 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 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 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; } + /// + /// 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 App resource. + string AppName { get; set; } + /// The name of the Binding resource. + string BindingName { get; set; } + /// The name of the certificate resource. + string CertificateName { get; set; } + /// The name of the Deployment resource. + string DeploymentName { get; set; } + /// The name of the custom domain resource. + string DomainName { get; set; } + /// Resource identity path + string Id { get; set; } + /// the region + string Location { 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 Service resource. + string ServiceName { 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..f0451b4bf0d9 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Models/AppPlatformIdentity.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 +{ + 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 erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.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;} + {_appName = If( json?.PropertyT("appName"), out var __jsonAppName) ? (string)__jsonAppName : (string)AppName;} + {_bindingName = If( json?.PropertyT("bindingName"), out var __jsonBindingName) ? (string)__jsonBindingName : (string)BindingName;} + {_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;} + {_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._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._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._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/AppResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..e665e4024e82 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.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 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"); + } + } + } +} \ 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..e0b57577bb45 --- /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..a1c82307c85f --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/AppResourceProvisioningState.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 +{ + + /// 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 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 + /// + /// 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/ConfigServerState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ConfigServerState.Completer.cs new file mode 100644 index 000000000000..e23ab4643e5d --- /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..4815311b59f7 --- /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..221403e3b227 --- /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 + /// 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/DeploymentResourceProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/DeploymentResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..19589bc3b7e7 --- /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..8ec63d28cf49 --- /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..fa2e78bc63b0 --- /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 + /// + /// 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..07350aa6c0d7 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.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 +{ + + /// 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) || "Unknown".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Unknown", "Unknown", global::System.Management.Automation.CompletionResultType.ParameterValue, "Unknown"); + } + 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"); + } + 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) || "Allocating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Allocating", "Allocating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Allocating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Upgrading".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Upgrading", "Upgrading", global::System.Management.Automation.CompletionResultType.ParameterValue, "Upgrading"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Compiling".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Compiling", "Compiling", global::System.Management.Automation.CompletionResultType.ParameterValue, "Compiling"); + } + } + } +} \ 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..2fa9d90b636d --- /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..5da7caa39bc3 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/DeploymentResourceStatus.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 +{ + + /// Status of the Deployment + public partial struct DeploymentResourceStatus : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Allocating = @"Allocating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Compiling = @"Compiling"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Running = @"Running"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Stopped = @"Stopped"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Unknown = @"Unknown"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.DeploymentResourceStatus Upgrading = @"Upgrading"; + + /// 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 + /// 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/ManagedIdentityType.Completer.cs b/swaggerci/appplatform/generated/api/Support/ManagedIdentityType.Completer.cs new file mode 100644 index 000000000000..fbd58351d469 --- /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..556a9034fa35 --- /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..648451cceece --- /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 + /// 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..b47d1ce377b8 --- /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..91bdfab03395 --- /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..525bdbee9f41 --- /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 + /// 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/ProvisioningState.Completer.cs b/swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.cs new file mode 100644 index 000000000000..7fffa5d5c4eb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProvisioningState.Completer.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.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) || "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..9625697f9710 --- /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..da6c942a137d --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/ProvisioningState.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 +{ + + /// 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 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 + /// 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..0760440a35eb --- /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..bb452a8fb9c3 --- /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..413bea56768b --- /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 + /// + /// 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..a9ec8d517488 --- /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..b9f57fd2d4d7 --- /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..bfb055ac2255 --- /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 + /// + /// 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/RuntimeVersion.Completer.cs b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.Completer.cs new file mode 100644 index 000000000000..e114aaa0f4d5 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.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 +{ + + /// Runtime version + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersionTypeConverter))] + public partial struct RuntimeVersion : + 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) || "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/RuntimeVersion.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.TypeConverter.cs new file mode 100644 index 000000000000..8d4c50546e7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.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 +{ + + /// Runtime version + public partial class RuntimeVersionTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => RuntimeVersion.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/RuntimeVersion.cs b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.cs new file mode 100644 index 000000000000..e5373ef622ed --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/RuntimeVersion.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 +{ + + /// Runtime version + public partial struct RuntimeVersion : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion Java11 = @"Java_11"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion Java8 = @"Java_8"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion NetCore31 = @"NetCore_31"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to RuntimeVersion + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new RuntimeVersion(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type RuntimeVersion + /// 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.RuntimeVersion e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type RuntimeVersion (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 RuntimeVersion && Equals((RuntimeVersion)obj); + } + + /// Returns hashCode for enum RuntimeVersion + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private RuntimeVersion(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for RuntimeVersion + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to RuntimeVersion + /// the value to convert to an instance of . + + public static implicit operator RuntimeVersion(string value) + { + return new RuntimeVersion(value); + } + + /// Implicit operator to convert RuntimeVersion to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion e) + { + return e._value; + } + + /// Overriding != operator for enum RuntimeVersion + /// 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.RuntimeVersion e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum RuntimeVersion + /// 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.RuntimeVersion e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion 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..c62544865b37 --- /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..3503d2fd574b --- /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..3ebb0a25236a --- /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 + /// 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..a53a95e2bc7c --- /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..cf0cf53dfe09 --- /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..e9074e6a640a --- /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 + /// 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..00564a807cb1 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.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 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) || "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..711d36f909dd --- /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..9a5d0f666b7c --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/SupportedRuntimeValue.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 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 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 + /// 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..7b4275b49554 --- /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..3ab7b973dd56 --- /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..81da88f02bb2 --- /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 + /// 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..6878ea56132a --- /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..d977780b8ca9 --- /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..2e62d4e7c692 --- /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 + /// 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/api/Support/UserSourceType.Completer.cs b/swaggerci/appplatform/generated/api/Support/UserSourceType.Completer.cs new file mode 100644 index 000000000000..95eae29bf17a --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/UserSourceType.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 +{ + + /// Type of the source uploaded + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceTypeTypeConverter))] + public partial struct UserSourceType : + 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) || "Jar".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Jar", "Jar", global::System.Management.Automation.CompletionResultType.ParameterValue, "Jar"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NetCoreZip".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("NetCoreZip", "NetCoreZip", global::System.Management.Automation.CompletionResultType.ParameterValue, "NetCoreZip"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Source".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("Source", "Source", global::System.Management.Automation.CompletionResultType.ParameterValue, "Source"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/api/Support/UserSourceType.TypeConverter.cs b/swaggerci/appplatform/generated/api/Support/UserSourceType.TypeConverter.cs new file mode 100644 index 000000000000..75c4cd0a6801 --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/UserSourceType.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 source uploaded + public partial class UserSourceTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => UserSourceType.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/UserSourceType.cs b/swaggerci/appplatform/generated/api/Support/UserSourceType.cs new file mode 100644 index 000000000000..3587f30243bb --- /dev/null +++ b/swaggerci/appplatform/generated/api/Support/UserSourceType.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 +{ + + /// Type of the source uploaded + public partial struct UserSourceType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType Jar = @"Jar"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType NetCoreZip = @"NetCoreZip"; + + public static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType Source = @"Source"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to UserSourceType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new UserSourceType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type UserSourceType + /// 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.UserSourceType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type UserSourceType (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 UserSourceType && Equals((UserSourceType)obj); + } + + /// Returns hashCode for enum UserSourceType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for UserSourceType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Creates an instance of the + /// the value to create an instance for. + private UserSourceType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to UserSourceType + /// the value to convert to an instance of . + + public static implicit operator UserSourceType(string value) + { + return new UserSourceType(value); + } + + /// Implicit operator to convert UserSourceType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType e) + { + return e._value; + } + + /// Overriding != operator for enum UserSourceType + /// 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.UserSourceType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum UserSourceType + /// 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.UserSourceType e1, Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType e2) + { + return e2.Equals(e1); + } + } +} \ 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..9ac5a29233ac --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_Disable.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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..a3f3b4d0c0a7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/DisableAzAppPlatformServiceTestEndpoint_DisableViaIdentity.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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..e5f13fe5d90d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_Enable.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..6065f0a72fdd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/EnableAzAppPlatformServiceTestEndpoint_EnableViaIdentity.cs @@ -0,0 +1,380 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.ITestKeys + WriteObject((await response)); + } + } + } +} \ 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..eac9dfdd07b5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_Get.cs @@ -0,0 +1,423 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..c5c10d30a9b3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformAppResourceUploadUrl_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; + + /// + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..b65c8e128dc7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_Get.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2f505e708485 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_GetViaIdentity.cs @@ -0,0 +1,395 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..ff7ecdf4254d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformApp_List.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/GetAzAppPlatformBinding_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs new file mode 100644 index 000000000000..d4e781d26aa5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_Get.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..27469aa6f687 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_GetViaIdentity.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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..0a9fc45cd668 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformBinding_List.cs @@ -0,0 +1,429 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/GetAzAppPlatformCertificate_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.cs new file mode 100644 index 000000000000..23a218dcb585 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_Get.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..9b8adf71b8e0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_GetViaIdentity.cs @@ -0,0 +1,381 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..7b5ae93d6d30 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCertificate_List.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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..df9ea5382b85 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_Get.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..df1964585f75 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformConfigServer_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IConfigServerResource + WriteObject((await response)); + } + } + } +} \ 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..4525b7b72d71 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_Get.cs @@ -0,0 +1,432 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..01d91e2fee97 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_GetViaIdentity.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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..4f09d4cbad67 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformCustomDomain_List.cs @@ -0,0 +1,429 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/GetAzAppPlatformDeploymentLogFileUrl_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.cs new file mode 100644 index 000000000000..e24f44c38fe8 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_Get.cs @@ -0,0 +1,476 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip 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 from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..345cd273d5db --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeploymentLogFileUrl_GetViaIdentity.cs @@ -0,0 +1,429 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip 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 from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.ILogFileUrlResponse + WriteObject((await response).Url); + } + } + } +} \ 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..dd8cb95313d3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_Get.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..62befb44f566 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_GetViaIdentity.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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..d057cbab3638 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List.cs @@ -0,0 +1,444 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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..36466bc5c7d2 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformDeployment_List1.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/GetAzAppPlatformMonitoringSetting_Get.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs new file mode 100644 index 000000000000..172a9e77cb40 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_Get.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..647961beede9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformMonitoringSetting_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..8b54cc95c8d7 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformOperation_List.cs @@ -0,0 +1,363 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/GetAzAppPlatformRuntimeVersion_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs new file mode 100644 index 000000000000..db68f0073ad0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformRuntimeVersion_List.cs @@ -0,0 +1,352 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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/GetAzAppPlatformServiceTestKey_List.cs b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.cs new file mode 100644 index 000000000000..faddba405383 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformServiceTestKey_List.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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2083f2609079 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_Get.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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..5d37476d113d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_GetViaIdentity.cs @@ -0,0 +1,377 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2156d5610938 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List.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.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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..5bbf11dad997 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformService_List1.cs @@ -0,0 +1,401 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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..0245da2bb41f --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/GetAzAppPlatformSku_List.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.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// + /// 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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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); + if (result.NextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( result.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/NewAzAppPlatformApp_CreateExpanded.cs b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs new file mode 100644 index 000000000000..81ac5b45a438 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformApp_CreateExpanded.cs @@ -0,0 +1,637 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Name of the active deployment of the App + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the active deployment of the App")] + [global::Microsoft.Azure.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 active deployment of the App", + SerializedName = @"activeDeploymentName", + PossibleTypes = new [] { typeof(string) })] + public string ActiveDeploymentName { get => AppResourceBody.ActiveDeploymentName ?? null; set => AppResourceBody.ActiveDeploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource _appResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResource(); + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource AppResourceBody { get => this._appResourceBody; set => this._appResourceBody = 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; } + + /// 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; } + + /// Fully qualified dns Name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified dns 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 = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + public string Fqdn { get => AppResourceBody.Fqdn ?? null; set => AppResourceBody.Fqdn = 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 + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal 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 = @"Principal Id", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => AppResourceBody.IdentityPrincipalId ?? null; set => AppResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant 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 = @"Tenant Id", + 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; } + + /// 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 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; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IAppResource + 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..71349be4d39c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformBinding_CreateExpanded.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.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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; + + /// + /// 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.Api20210601Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => BindingResourceBody.BindingParameter ?? null /* object */; set => BindingResourceBody.BindingParameter = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource _bindingResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResource(); + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource BindingResourceBody { get => this._bindingResourceBody; set => this._bindingResourceBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IBindingResource + 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..cb8bd369a032 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCertificate_CreateExpanded.cs @@ -0,0 +1,526 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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 certificate version of key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The certificate version of key vault.")] + [global::Microsoft.Azure.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 certificate version of key vault.", + SerializedName = @"certVersion", + PossibleTypes = new [] { typeof(string) })] + public string CertVersion { get => CertificateResourceBody.CertVersion ?? null; set => CertificateResourceBody.CertVersion = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource _certificateResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CertificateResource(); + + /// Certificate resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICertificateResource CertificateResourceBody { get => this._certificateResourceBody; set => this._certificateResourceBody = 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; } } + + /// The certificate name of key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The certificate name of key vault.")] + [global::Microsoft.Azure.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 certificate name of key vault.", + SerializedName = @"keyVaultCertName", + PossibleTypes = new [] { typeof(string) })] + public string KeyVaultCertName { get => CertificateResourceBody.KeyVaultCertName ?? null; set => CertificateResourceBody.KeyVaultCertName = 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 URI for the proxy server to 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 vault uri of user key vault. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The vault uri of user key vault.")] + [global::Microsoft.Azure.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 vault uri of user key vault.", + SerializedName = @"vaultUri", + PossibleTypes = new [] { typeof(string) })] + public string VaultUri { get => CertificateResourceBody.VaultUri ?? null; set => CertificateResourceBody.VaultUri = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.ICertificateResource + 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..d823207e4523 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformCustomDomain_CreateExpanded.cs @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource _domainResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResource(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource DomainResourceBody { get => this._domainResourceBody; set => this._domainResourceBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.ICustomDomainResource + WriteObject((await response)); + } + } + } +} \ 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..b38234785b73 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformDeployment_CreateExpanded.cs @@ -0,0 +1,692 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource _deploymentResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResource(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource DeploymentResourceBody { get => this._deploymentResourceBody; set => this._deploymentResourceBody = value; } + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the 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 = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingCpu { get => DeploymentResourceBody.DeploymentSettingCpu ?? default(int); set => DeploymentResourceBody.DeploymentSettingCpu = value; } + + /// Collection of environment variables + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of environment variables")] + [global::Microsoft.Azure.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 environment variables", + SerializedName = @"environmentVariables", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get => DeploymentResourceBody.DeploymentSettingEnvironmentVariable ?? null /* object */; set => DeploymentResourceBody.DeploymentSettingEnvironmentVariable = value; } + + /// JVM parameter + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "JVM parameter")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingJvmOption { get => DeploymentResourceBody.DeploymentSettingJvmOption ?? null; set => DeploymentResourceBody.DeploymentSettingJvmOption = value; } + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the 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 = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingMemoryInGb { get => DeploymentResourceBody.DeploymentSettingMemoryInGb ?? default(int); set => DeploymentResourceBody.DeploymentSettingMemoryInGb = value; } + + /// The path to the .NET executable relative to zip root + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The path to the .NET executable relative to zip root")] + [global::Microsoft.Azure.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 path to the .NET executable relative to zip root", + SerializedName = @"netCoreMainEntryPath", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingNetCoreMainEntryPath { get => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath ?? null; set => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath = value; } + + /// Runtime version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Runtime version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion DeploymentSettingRuntimeVersion { get => DeploymentResourceBody.DeploymentSettingRuntimeVersion ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion)""); set => DeploymentResourceBody.DeploymentSettingRuntimeVersion = 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; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestCpu { get => DeploymentResourceBody.ResourceRequestCpu ?? null; set => DeploymentResourceBody.ResourceRequestCpu = value; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestMemory { get => DeploymentResourceBody.ResourceRequestMemory ?? null; set => DeploymentResourceBody.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; } + + /// 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; } + + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to + /// the target module/project. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to the target module/project.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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 bethe relative path to the target module/project.", + SerializedName = @"artifactSelector", + PossibleTypes = new [] { typeof(string) })] + public string SourceArtifactSelector { get => DeploymentResourceBody.SourceArtifactSelector ?? null; set => DeploymentResourceBody.SourceArtifactSelector = value; } + + /// Relative path of the storage which stores the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Relative path of the storage which stores 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 = @"Relative path of the storage which stores the source", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + public string SourceRelativePath { get => DeploymentResourceBody.SourceRelativePath ?? null; set => DeploymentResourceBody.SourceRelativePath = 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType SourceType { get => DeploymentResourceBody.SourceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType)""); 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IDeploymentResource + 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..556e3d7515d9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_Regenerate.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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IRegenerateTestKeyRequestPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..e62fd34515f1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateExpanded.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; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequestBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RegenerateTestKeyRequestPayload(); + + /// Regenerate test key request payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload RegenerateTestKeyRequestBody { get => this._regenerateTestKeyRequestBody; set => this._regenerateTestKeyRequestBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..e8bafe06a95c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentity.cs @@ -0,0 +1,393 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IRegenerateTestKeyRequestPayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..f8cdd2e1b743 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformServiceTestKey_RegenerateViaIdentityExpanded.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; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload _regenerateTestKeyRequestBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.RegenerateTestKeyRequestPayload(); + + /// Regenerate test key request payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IRegenerateTestKeyRequestPayload RegenerateTestKeyRequestBody { get => this._regenerateTestKeyRequestBody; set => this._regenerateTestKeyRequestBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..4c8750544aef --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/NewAzAppPlatformService_CreateExpanded.cs @@ -0,0 +1,597 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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; } } + + /// 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; } + + /// + /// 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 of Azure Spring Cloud Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 of Azure Spring Cloud 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 Azure Spring Cloud Apps + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => ResourceBody.NetworkProfileAppSubnetId ?? null; set => ResourceBody.NetworkProfileAppSubnetId = value; } + + /// Azure Spring Cloud service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource _resourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResource(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource ResourceBody { get => this._resourceBody; set => this._resourceBody = 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; } + + /// 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.Api20210601Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags Tag { get => ResourceBody.Tag ?? null /* object */; set => ResourceBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ 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..b559e3e45b3a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_Delete.cs @@ -0,0 +1,525 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..76b37aaf8587 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformApp_DeleteViaIdentity.cs @@ -0,0 +1,486 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..e6507514452e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_Delete.cs @@ -0,0 +1,540 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..a8afe8359adf --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformBinding_DeleteViaIdentity.cs @@ -0,0 +1,490 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..1fa33891ea65 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_Delete.cs @@ -0,0 +1,525 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..f26bef76eb3d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCertificate_DeleteViaIdentity.cs @@ -0,0 +1,486 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..38f4e4cea83d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_Delete.cs @@ -0,0 +1,539 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..1ed8da815ddb --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformCustomDomain_DeleteViaIdentity.cs @@ -0,0 +1,490 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..8a85615b7489 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_Delete.cs @@ -0,0 +1,540 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..c08df61d85c9 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformDeployment_DeleteViaIdentity.cs @@ -0,0 +1,490 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..e9a5d8d0efa6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_Delete.cs @@ -0,0 +1,476 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip 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); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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, 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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); + } + } + } + } +} \ 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..70fd05d1653c --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RemoveAzAppPlatformService_DeleteViaIdentity.cs @@ -0,0 +1,448 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip 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); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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, 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, 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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); + } + } + } + } +} \ 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..28f01c4d22ca --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_Restart.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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..2504c310cd4d --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/RestartAzAppPlatformDeployment_RestartViaIdentity.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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/StartAzAppPlatformDeployment_Start.cs b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.cs new file mode 100644 index 000000000000..26cc354304cc --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_Start.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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..1dbc1c7c6d72 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StartAzAppPlatformDeployment_StartViaIdentity.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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/StopAzAppPlatformDeployment_Stop.cs b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.cs new file mode 100644 index 000000000000..592c59897aa5 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_Stop.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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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..b51ec3b0d270 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/StopAzAppPlatformDeployment_StopViaIdentity.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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/TestAzAppPlatformAppDomain_Validate.cs b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.cs new file mode 100644 index 000000000000..403e480fcfa0 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_Validate.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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..f34ce308982e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateExpanded.cs @@ -0,0 +1,435 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload _validatePayloadBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidatePayload(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload ValidatePayloadBody { get => this._validatePayloadBody; set => this._validatePayloadBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..dc088f2e4112 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentity.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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.ICustomDomainValidatePayload) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..80dfa41e7488 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformAppDomain_ValidateViaIdentityExpanded.cs @@ -0,0 +1,401 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// Wait for .NET 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload _validatePayloadBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainValidatePayload(); + + /// Custom domain validate payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainValidatePayload ValidatePayloadBody { get => this._validatePayloadBody; set => this._validatePayloadBody = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..161ca1fe4673 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_Validate.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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IConfigServerSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..31aa4b802798 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateExpanded.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; + + /// 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.Api20210601Preview.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(); + + /// 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.Api20210601Preview.IConfigServerSettings _configServerSettingsBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettings(); + + /// The settings of config server. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings ConfigServerSettingsBody { get => this._configServerSettingsBody; set => this._configServerSettingsBody = 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 => 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.Api20210601Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..78c009ddc4e1 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentity.cs @@ -0,0 +1,457 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.IConfigServerSettings) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..f0ce81c87a34 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformConfigServer_ValidateViaIdentityExpanded.cs @@ -0,0 +1,564 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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.Api20210601Preview.IConfigServerSettings _configServerSettingsBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerSettings(); + + /// The settings of config server. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerSettings ConfigServerSettingsBody { get => this._configServerSettingsBody; set => this._configServerSettingsBody = 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 => 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.Api20210601Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IConfigServerSettingsValidateResult + 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..6b5b0896da5b --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_Check.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; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.INameAvailabilityParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..7e8b4e545d69 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckExpanded.cs @@ -0,0 +1,415 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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; + + /// + /// 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.Api20210601Preview.INameAvailabilityParameters _availabilityParametersBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailabilityParameters(); + + /// Name availability parameters payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters AvailabilityParametersBody { get => this._availabilityParametersBody; set => this._availabilityParametersBody = 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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..05fae5e7edd6 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentity.cs @@ -0,0 +1,389 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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.Api20210601Preview.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.Api20210601Preview.INameAvailabilityParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..b6f6072033be --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/TestAzAppPlatformServiceNameAvailability_CheckViaIdentityExpanded.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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; + + /// + /// 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.Api20210601Preview.INameAvailabilityParameters _availabilityParametersBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.NameAvailabilityParameters(); + + /// Name availability parameters payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.INameAvailabilityParameters AvailabilityParametersBody { get => this._availabilityParametersBody; set => this._availabilityParametersBody = 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; + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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, new[] { data.Message }); + 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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..7c86d0c6d3fe --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateExpanded.cs @@ -0,0 +1,637 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Name of the active deployment of the App + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the active deployment of the App")] + [global::Microsoft.Azure.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 active deployment of the App", + SerializedName = @"activeDeploymentName", + PossibleTypes = new [] { typeof(string) })] + public string ActiveDeploymentName { get => AppResourceBody.ActiveDeploymentName ?? null; set => AppResourceBody.ActiveDeploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource _appResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResource(); + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource AppResourceBody { get => this._appResourceBody; set => this._appResourceBody = 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; } + + /// 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; } + + /// Fully qualified dns Name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified dns 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 = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + public string Fqdn { get => AppResourceBody.Fqdn ?? null; set => AppResourceBody.Fqdn = 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 + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal 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 = @"Principal Id", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => AppResourceBody.IdentityPrincipalId ?? null; set => AppResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant 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 = @"Tenant Id", + 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; } + + /// 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 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; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..70be7a414d66 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformApp_UpdateViaIdentityExpanded.cs @@ -0,0 +1,598 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Name of the active deployment of the App + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the active deployment of the App")] + [global::Microsoft.Azure.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 active deployment of the App", + SerializedName = @"activeDeploymentName", + PossibleTypes = new [] { typeof(string) })] + public string ActiveDeploymentName { get => AppResourceBody.ActiveDeploymentName ?? null; set => AppResourceBody.ActiveDeploymentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource _appResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.AppResource(); + + /// App resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IAppResource AppResourceBody { get => this._appResourceBody; set => this._appResourceBody = 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; } + + /// 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; } + + /// Fully qualified dns Name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified dns 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 = @"Fully qualified dns Name.", + SerializedName = @"fqdn", + PossibleTypes = new [] { typeof(string) })] + public string Fqdn { get => AppResourceBody.Fqdn ?? null; set => AppResourceBody.Fqdn = 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 + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Principal 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 = @"Principal Id", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => AppResourceBody.IdentityPrincipalId ?? null; set => AppResourceBody.IdentityPrincipalId = value; } + + /// Tenant Id + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tenant 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 = @"Tenant Id", + 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; } + + /// 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 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; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..0310e5e60f74 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateExpanded.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.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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; + + /// + /// 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.Api20210601Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => BindingResourceBody.BindingParameter ?? null /* object */; set => BindingResourceBody.BindingParameter = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource _bindingResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResource(); + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource BindingResourceBody { get => this._bindingResourceBody; set => this._bindingResourceBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2b1f3a23bcde --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformBinding_UpdateViaIdentityExpanded.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; + + /// 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.Api20210601Preview.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; + + /// + /// 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.Api20210601Preview.IBindingResourcePropertiesBindingParameters) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResourcePropertiesBindingParameters BindingParameter { get => BindingResourceBody.BindingParameter ?? null /* object */; set => BindingResourceBody.BindingParameter = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource _bindingResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.BindingResource(); + + /// Binding resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IBindingResource BindingResourceBody { get => this._bindingResourceBody; set => this._bindingResourceBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..717334557dc2 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateExpanded.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. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource _configServerResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerResource(); + + /// Config Server resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource ConfigServerResourceBody { get => this._configServerResourceBody; set => this._configServerResourceBody = 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.Api20210601Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..f30e0d106b82 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformConfigServerPatch_UpdateViaIdentityExpanded.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; + + /// 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.Api20210601Preview.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(); + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource _configServerResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ConfigServerResource(); + + /// Config Server resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IConfigServerResource ConfigServerResourceBody { get => this._configServerResourceBody; set => this._configServerResourceBody = 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.Api20210601Preview.IGitPatternRepository) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2969b65901f3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateExpanded.cs @@ -0,0 +1,529 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource _domainResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResource(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource DomainResourceBody { get => this._domainResourceBody; set => this._domainResourceBody = 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..6730fcbbddc3 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformCustomDomain_UpdateViaIdentityExpanded.cs @@ -0,0 +1,482 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Extensions; + + /// 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.Api20210601Preview.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(); + + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource _domainResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.CustomDomainResource(); + + /// Custom domain resource payload. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ICustomDomainResource DomainResourceBody { get => this._domainResourceBody; set => this._domainResourceBody = 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; } + + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..2f0086cab355 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateExpanded.cs @@ -0,0 +1,692 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource _deploymentResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResource(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource DeploymentResourceBody { get => this._deploymentResourceBody; set => this._deploymentResourceBody = value; } + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the 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 = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingCpu { get => DeploymentResourceBody.DeploymentSettingCpu ?? default(int); set => DeploymentResourceBody.DeploymentSettingCpu = value; } + + /// Collection of environment variables + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of environment variables")] + [global::Microsoft.Azure.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 environment variables", + SerializedName = @"environmentVariables", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get => DeploymentResourceBody.DeploymentSettingEnvironmentVariable ?? null /* object */; set => DeploymentResourceBody.DeploymentSettingEnvironmentVariable = value; } + + /// JVM parameter + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "JVM parameter")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingJvmOption { get => DeploymentResourceBody.DeploymentSettingJvmOption ?? null; set => DeploymentResourceBody.DeploymentSettingJvmOption = value; } + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the 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 = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingMemoryInGb { get => DeploymentResourceBody.DeploymentSettingMemoryInGb ?? default(int); set => DeploymentResourceBody.DeploymentSettingMemoryInGb = value; } + + /// The path to the .NET executable relative to zip root + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The path to the .NET executable relative to zip root")] + [global::Microsoft.Azure.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 path to the .NET executable relative to zip root", + SerializedName = @"netCoreMainEntryPath", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingNetCoreMainEntryPath { get => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath ?? null; set => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath = value; } + + /// Runtime version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Runtime version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion DeploymentSettingRuntimeVersion { get => DeploymentResourceBody.DeploymentSettingRuntimeVersion ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion)""); set => DeploymentResourceBody.DeploymentSettingRuntimeVersion = 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; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestCpu { get => DeploymentResourceBody.ResourceRequestCpu ?? null; set => DeploymentResourceBody.ResourceRequestCpu = value; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestMemory { get => DeploymentResourceBody.ResourceRequestMemory ?? null; set => DeploymentResourceBody.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; } + + /// 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; } + + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to + /// the target module/project. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to the target module/project.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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 bethe relative path to the target module/project.", + SerializedName = @"artifactSelector", + PossibleTypes = new [] { typeof(string) })] + public string SourceArtifactSelector { get => DeploymentResourceBody.SourceArtifactSelector ?? null; set => DeploymentResourceBody.SourceArtifactSelector = value; } + + /// Relative path of the storage which stores the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Relative path of the storage which stores 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 = @"Relative path of the storage which stores the source", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + public string SourceRelativePath { get => DeploymentResourceBody.SourceRelativePath ?? null; set => DeploymentResourceBody.SourceRelativePath = 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType SourceType { get => DeploymentResourceBody.SourceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType)""); 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..58db8d182dcd --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformDeployment_UpdateViaIdentityExpanded.cs @@ -0,0 +1,642 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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.Api20210601Preview.IDeploymentResource _deploymentResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.DeploymentResource(); + + /// Deployment resource payload + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentResource DeploymentResourceBody { get => this._deploymentResourceBody; set => this._deploymentResourceBody = value; } + + /// + /// Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from + /// API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the 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 = @"Required CPU. This should be 1 for Basic tier, and in range [1, 4] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the CPU size.", + SerializedName = @"cpu", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingCpu { get => DeploymentResourceBody.DeploymentSettingCpu ?? default(int); set => DeploymentResourceBody.DeploymentSettingCpu = value; } + + /// Collection of environment variables + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Collection of environment variables")] + [global::Microsoft.Azure.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 environment variables", + SerializedName = @"environmentVariables", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IDeploymentSettingsEnvironmentVariables DeploymentSettingEnvironmentVariable { get => DeploymentResourceBody.DeploymentSettingEnvironmentVariable ?? null /* object */; set => DeploymentResourceBody.DeploymentSettingEnvironmentVariable = value; } + + /// JVM parameter + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "JVM parameter")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JVM parameter", + SerializedName = @"jvmOptions", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingJvmOption { get => DeploymentResourceBody.DeploymentSettingJvmOption ?? null; set => DeploymentResourceBody.DeploymentSettingJvmOption = value; } + + /// + /// Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This + /// is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory + /// size. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the 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 = @"Required Memory size in GB. This should be in range [1, 2] for Basic tier, and in range [1, 8] for Standard tier. This is deprecated starting from API version 2021-06-01-preview. Please use the resourceRequests field to set the the memory size.", + SerializedName = @"memoryInGB", + PossibleTypes = new [] { typeof(int) })] + public int DeploymentSettingMemoryInGb { get => DeploymentResourceBody.DeploymentSettingMemoryInGb ?? default(int); set => DeploymentResourceBody.DeploymentSettingMemoryInGb = value; } + + /// The path to the .NET executable relative to zip root + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The path to the .NET executable relative to zip root")] + [global::Microsoft.Azure.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 path to the .NET executable relative to zip root", + SerializedName = @"netCoreMainEntryPath", + PossibleTypes = new [] { typeof(string) })] + public string DeploymentSettingNetCoreMainEntryPath { get => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath ?? null; set => DeploymentResourceBody.DeploymentSettingNetCoreMainEntryPath = value; } + + /// Runtime version + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Runtime version")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Runtime version", + SerializedName = @"runtimeVersion", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion DeploymentSettingRuntimeVersion { get => DeploymentResourceBody.DeploymentSettingRuntimeVersion ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.RuntimeVersion)""); set => DeploymentResourceBody.DeploymentSettingRuntimeVersion = 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; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestCpu { get => DeploymentResourceBody.ResourceRequestCpu ?? null; set => DeploymentResourceBody.ResourceRequestCpu = value; } + + /// + /// 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. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "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.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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) })] + public string ResourceRequestMemory { get => DeploymentResourceBody.ResourceRequestMemory ?? null; set => DeploymentResourceBody.ResourceRequestMemory = 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; } + + /// + /// Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to + /// the target module/project. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Selector for the artifact to be used for the deployment for multi-module projects. This should bethe relative path to the target module/project.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Category(global::Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.ParameterCategory.Body)] + [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 bethe relative path to the target module/project.", + SerializedName = @"artifactSelector", + PossibleTypes = new [] { typeof(string) })] + public string SourceArtifactSelector { get => DeploymentResourceBody.SourceArtifactSelector ?? null; set => DeploymentResourceBody.SourceArtifactSelector = value; } + + /// Relative path of the storage which stores the source + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Relative path of the storage which stores 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 = @"Relative path of the storage which stores the source", + SerializedName = @"relativePath", + PossibleTypes = new [] { typeof(string) })] + public string SourceRelativePath { get => DeploymentResourceBody.SourceRelativePath ?? null; set => DeploymentResourceBody.SourceRelativePath = 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(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType))] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType SourceType { get => DeploymentResourceBody.SourceType ?? ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Support.UserSourceType)""); 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..4e874c97df7e --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateExpanded.cs @@ -0,0 +1,541 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// + /// 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; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource _monitoringSettingResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingResource(); + + /// Monitoring Setting resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource MonitoringSettingResourceBody { get => this._monitoringSettingResourceBody; set => this._monitoringSettingResourceBody = 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; } + + /// + /// 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..63c5b34d95ee --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformMonitoringSettingPatch_UpdateViaIdentityExpanded.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; + + /// 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.Api20210601Preview.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(); + + /// + /// 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; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource _monitoringSettingResourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.MonitoringSettingResource(); + + /// Monitoring Setting resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IMonitoringSettingResource MonitoringSettingResourceBody { get => this._monitoringSettingResourceBody; set => this._monitoringSettingResourceBody = 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 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 from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..9f45e115921a --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateExpanded.cs @@ -0,0 +1,597 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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; } } + + /// 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; } + + /// + /// 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 of Azure Spring Cloud Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 of Azure Spring Cloud 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 Azure Spring Cloud Apps + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => ResourceBody.NetworkProfileAppSubnetId ?? null; set => ResourceBody.NetworkProfileAppSubnetId = value; } + + /// Azure Spring Cloud service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource _resourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResource(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource ResourceBody { get => this._resourceBody; set => this._resourceBody = 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; } + + /// 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.Api20210601Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags Tag { get => ResourceBody.Tag ?? null /* object */; set => ResourceBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.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..480144e66462 --- /dev/null +++ b/swaggerci/appplatform/generated/cmdlets/UpdateAzAppPlatformService_UpdateViaIdentityExpanded.cs @@ -0,0 +1,569 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (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; + + /// 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.Api20210601Preview.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(); + + /// 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; } } + + /// 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; } + + /// + /// 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 of Azure Spring Cloud Apps + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 of Azure Spring Cloud 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 Azure Spring Cloud Apps + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Azure Spring Cloud Apps", + SerializedName = @"appSubnetId", + PossibleTypes = new [] { typeof(string) })] + public string NetworkProfileAppSubnetId { get => ResourceBody.NetworkProfileAppSubnetId ?? null; set => ResourceBody.NetworkProfileAppSubnetId = value; } + + /// Azure Spring Cloud service reserved CIDR + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the resource group containing network resources of Azure Spring Cloud 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 Cloud 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 Cloud Service Runtime + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified resource Id of the subnet to host Azure Spring Cloud 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 Cloud 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 Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource _resourceBody= new Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ServiceResource(); + + /// Service resource + private Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.IServiceResource ResourceBody { get => this._resourceBody; set => this._resourceBody = 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; } + + /// + /// 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.Api20210601Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Models.Api20210601Preview.ITrackedResourceTags Tag { get => ResourceBody.Tag ?? null /* object */; set => ResourceBody.Tag = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.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() + { + ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.Events.CmdletEndProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.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.CmdletProcessRecordAsyncStart); if( ((Microsoft.Azure.PowerShell.Cmdlets.AppPlatform.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + 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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, response, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + var code = (await response)?.Code; + var message = (await response)?.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 from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, 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.Api20210601Preview.IServiceResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml new file mode 100644 index 000000000000..62bf0183a3c0 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.format.ps1xml @@ -0,0 +1,437 @@ + + + + + AzureErrorRecords + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + AzureErrorRecords + + + $_.InvocationInfo.HistoryId + + + + + + + + ErrorCategory + + + ErrorDetail + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.BoundParameters + + + + $_.InvocationInfo.UnboundParameters + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] + + + + + RequestId + + + Message + + + ServerMessage + + + ServerResponse + + + RequestMessage + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + StackTrace + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] + + + + + Message + + + StackTrace + + + + $_.Exception.GetType() + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.HistoryId + + + + + + + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Description + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + Token + + + ExpiresOn + + + Type + + + TenantId + + + UserId + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + + + + Left + + + + Left + + + + Left + + + + + + + + Left + locationPlacementId + + + Left + QuotaId + + + Left + SpendingLimit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..ca18b6c6cc34 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.generated.format.ps1xml @@ -0,0 +1,446 @@ + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + ResourceManagerUrl + + + Left + ActiveDirectoryAuthority + + + Left + Type + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Id + + + Left + TenantId + + + Left + State + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + $_.Context.Account.ToString() + + + Left + $_.Context.Subscription.Name + + + Left + $_.Context.Tenant.ToString() + + + Left + $_.Context.Environment.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + 40 + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Account + + + Left + $_.Subscription.Name + + + Left + Environment + + + Left + $_.Tenant.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Id + + + Left + $_.Name + + + Left + $_.TenantCategory + + + Left + $_.Domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml new file mode 100644 index 000000000000..1f6599e7f250 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Accounts.types.ps1xml @@ -0,0 +1,281 @@ + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + Microsoft.Azure.Commands.Profile.Models.AzureContextConverter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec new file mode 100644 index 000000000000..a13ef862f8ef --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.nuspec @@ -0,0 +1,19 @@ + + + + Az.Accounts + 2.2.3 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps + * Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSIncludes_Cmdlet PSCmdlet_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCmdlet_Get-AzContext PSCmdlet_Set-AzContext PSCmdlet_Import-AzContext PSCmdlet_Save-AzContext PSCmdlet_Get-AzTenant PSCmdlet_Send-Feedback PSCmdlet_Resolve-AzError PSCmdlet_Select-AzContext PSCmdlet_Rename-AzContext PSCmdlet_Remove-AzContext PSCmdlet_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCmdlet_Get-AzDefault PSCmdlet_Clear-AzDefault PSCmdlet_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCommand_Disable-AzDataCollection PSCommand_Disable-AzContextAutosave PSCommand_Enable-AzDataCollection PSCommand_Enable-AzContextAutosave PSCommand_Remove-AzEnvironment PSCommand_Get-AzEnvironment PSCommand_Set-AzEnvironment PSCommand_Add-AzEnvironment PSCommand_Get-AzSubscription PSCommand_Connect-AzAccount PSCommand_Get-AzContext PSCommand_Set-AzContext PSCommand_Import-AzContext PSCommand_Save-AzContext PSCommand_Get-AzTenant PSCommand_Send-Feedback PSCommand_Resolve-AzError PSCommand_Select-AzContext PSCommand_Rename-AzContext PSCommand_Remove-AzContext PSCommand_Clear-AzContext PSCommand_Disconnect-AzAccount PSCommand_Get-AzContextAutosaveSetting PSCommand_Set-AzDefault PSCommand_Get-AzDefault PSCommand_Clear-AzDefault PSCommand_Register-AzModule PSCommand_Enable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCommand_Uninstall-AzureRm PSCommand_Invoke-AzRestMethod PSCommand_Get-AzAccessToken PSCommand_Add-AzAccount PSCommand_Login-AzAccount PSCommand_Remove-AzAccount PSCommand_Logout-AzAccount PSCommand_Select-AzSubscription PSCommand_Resolve-Error PSCommand_Save-AzProfile PSCommand_Get-AzDomain PSCommand_Invoke-AzRest + + \ No newline at end of file diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 new file mode 100644 index 000000000000..ccacfd07c692 --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psd1 @@ -0,0 +1,362 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.2.3' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '17a2feff-488b-47f9-8729-e2cec094624c' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# CLRVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', + 'Microsoft.Azure.PowerShell.Authentication.dll', + 'Microsoft.Azure.PowerShell.Authenticators.dll', + 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', + 'Microsoft.Azure.PowerShell.Clients.Compute.dll', + 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', + 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', + 'Microsoft.Azure.PowerShell.Clients.Network.dll', + 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', + 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Common.dll', + 'Microsoft.Azure.PowerShell.Storage.dll', + 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', + 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', + 'Microsoft.Azure.PowerShell.Clients.Websites.dll', + 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', + 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', + 'Microsoft.Rest.ClientRuntime.Azure.dll', + 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.WindowsAzure.Storage.DataMovement.dll', + 'Microsoft.Azure.PowerShell.Clients.Aks.dll', + 'Microsoft.Azure.PowerShell.Strategies.dll' + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', + 'Enable-AzDataCollection', 'Enable-AzContextAutosave', + 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', + 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', + 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', + 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', + 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', + 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', + 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', + 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', + 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken' + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', + 'Logout-AzAccount', 'Select-AzSubscription', 'Resolve-Error', + 'Save-AzProfile', 'Get-AzDomain', 'Invoke-AzRest' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' + + # A URL to the license for this module. + LicenseUri = 'https://aka.ms/azps-license' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-powershell' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '* Fixed the issue that Http proxy is not respected in Windows PowerShell [#13647] +* Improved debug log of long running operations in generated modules' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + + +# SIG # Begin signature block +# MIIjjgYJKoZIhvcNAQcCoIIjfzCCI3sCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCTwO6OY9CZ9hBt +# sVCPzLCq1tTk36baGgPhZELsEqdHbaCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVYzCCFV8CAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgiAwK5kNM +# cm/r7eeIjqRJA5oO508+3XhQQkxLvni75A4wQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQDB/48KOxRiNEs6y4SGWJiNKjupO4Z1OuzqUElNihb8 +# QDz2x6Ym6/XlVhZzvLjyCqtXbv80xxKGjKF5xygynzbkEegd0fpeEPaQn5e0eaWw +# B6Spob3FMJxPv1rNYFa+bm2p77is05ylF8NcK7ubqPt1DRC3OHW3uyevqQhDXBAl +# xunILpudxwpUycuaxZ0l1NbsRxMNr8nZZ+bAu2tlno2ylqejSWuYBH6ECYMldF57 +# uQJOPGOo7+EtBcnLJfi4PKiWC4GjGypjQyzfYw7UJ/EK8gn69xDU1ixTveA9a54W +# bXCYTpAcOe6EMpg3YM1Ou+gqmcjSURm3SC7bTFCqUfowoYIS7TCCEukGCisGAQQB +# gjcDAwExghLZMIIS1QYJKoZIhvcNAQcCoIISxjCCEsICAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIDN1M/nKQpU074BJ1wTtn6lkpHIR8v9Se3n6F6+6 +# XN9VAgZf25nFRwYYEzIwMjAxMjI0MDk1NDUyLjQ3NVowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpGNzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkAwggT1MIID3aADAgECAhMzAAABKugXlviGp++jAAAA +# AAEqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpGNzdG +# LUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/flYGkhdJtxSsHBu9l +# mXF/UXxPF7L45nEhmtd01KDosWbY8y54BN7+k9DMvzqToP39v8/Z+NtEzKj8Bf5E +# QoG1/pJfpzCJe80HZqyqMo0oQ9EugVY6YNVNa2T1u51d96q1hFmu1dgxt8uD2g7I +# pBQdhS2tpc3j3HEzKvV/vwEr7/BcTuwqUHqrrBgHc971epVR4o5bNKsjikawmMw9 +# D/tyrTciy3F9Gq9pEgk8EqJfOdAabkanuAWTjlmBhZtRiO9W1qFpwnu9G5qVvdNK +# RKxQdtxMC04pWGfnxzDac7+jIql532IEC5QSnvY84szEpxw31QW/LafSiDmAtYWH +# pm8CAwEAAaOCARswggEXMB0GA1UdDgQWBBRw9MUtdCs/rhN2y9EkE6ZI9O8TaTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQCKwDT0CnHVo46OWyUbrPIj8QIcf+PT +# jBVYpKg1K2D15Z6xEuvmf+is6N8gj9f1nkFIALvh+iGkx8GgGa/oA9IhXNEFYPNF +# aHwHan/UEw1P6Tjdaqy3cvLC8f8zE1CR1LhXNofq6xfoT9HLGFSg9skPLM1TQ+RA +# QX9MigEm8FFlhhsQ1iGB1399x8d92h9KspqGDnO96Z9Aj7ObDtdU6RoZrsZkiRQN +# nXmnX1I+RuwtLu8MN8XhJLSl5wqqHM3rqaaMvSAISVtKySpzJC5Zh+5kJlqFdSiI +# HW8Q+8R6EWG8ILb9Pf+w/PydyK3ZTkVXUpFA+JhWjcyzphVGw9ffj0YKMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYICzjCCAjcCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpG +# NzdGLUUzNTYtNUJBRTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUA6rLmrKHyIMP76ePl321xKUJ3YX+ggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqdIwIhgPMjAyMDEyMjQwOTQ2NThaGA8yMDIwMTIyNTA5NDY1OFowczA5Bgor +# BgEEAYRZCgQBMSswKTAKAgUA446p0gIBADAGAgEAAgEEMAcCAQACAhGUMAoCBQDj +# j/tSAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMH +# oSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEApKPWkjqj3O9lNPTCfUHy +# +5IF5oXSncTgxGtMN/q/02rTsvfI4/gsRavPRvwenX9IRZDqlZ5ccJZEd2cVUITi +# tvX0UPpK7gb1svCNSIroX4RIVCr+Vgf9Vnwp5zZYD/enTrsA1/+hydcgoAu4AJKa +# vtg9d1hJIw/iTb2nTTOjw1IxggMNMIIDCQIBATCBkzB8MQswCQYDVQQGEwJVUzET +# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV +# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T +# dGFtcCBQQ0EgMjAxMAITMwAAASroF5b4hqfvowAAAAABKjANBglghkgBZQMEAgEF +# AKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEi +# BCBysfNgmLIcyYp3CTmX0HgoKWxBGMTZwN/7i16ECzCObjCB+gYLKoZIhvcNAQkQ +# Ai8xgeowgecwgeQwgb0EIEOYNYRa9zp+Gzm3haijlD4UwUJxoiBXjJQ/gKm4GYuZ +# MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO +# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm +# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAEq6BeW +# +Ian76MAAAAAASowIgQgclal1LwDfBg6QBrQY8Rnd9RhiDfXVivXo/WUOazIGLYw +# DQYJKoZIhvcNAQELBQAEggEAOgYVxMhZQBKvosx8UzY9WYaa8WsJKFnWK8mgZDGF +# 5vqqPQE0m9M5ZjtNTpmYx9tXFJxSr0Dvyg58BV+/VFZl6/8WhyGi4FVu3bcc3jo/ +# HoJwIW/jdkC2GC0D5XWEXDhXSWy5vc9BuunxCB+8P+/J0UhjrKEs2ASHQUKzV3e4 +# Ao8VdcQ9pfSSrReO5Vm7nD936C3PCsS4owBXIwtSoPJbDFYAV05D98rV8MY7UOiB +# dbRmaa/QOm9We4PvoxHQj9znKBHk+Bmx4jQxBcEQRAWBxr3qdO/MdYNIUo2duc/v +# tgzScCpo8ooh3WeHDFKh223KA8AToZmCrR3iNW8r5ug5ew== +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 new file mode 100644 index 000000000000..bb5fde1c75eb --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Az.Accounts.psm1 @@ -0,0 +1,339 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 12/24/2020 09:11:01 +# + +$PSDefaultParameterValues.Clear() +Set-StrictMode -Version Latest + +function Test-DotNet +{ + try + { + if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) + { + throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." + } + } + catch [System.Management.Automation.DriveNotFoundException] + { + Write-Verbose ".NET Framework version check failed." + } +} + +if ($true -and ($PSEdition -eq 'Desktop')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'5.1') + { + throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." + } + + Test-DotNet +} + +if ($true -and ($PSEdition -eq 'Core')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') + { + throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." + } +} + +if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +if (Get-Module AzureRM.profile -ErrorAction Ignore) +{ + Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") + throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") +} + +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "PreloadAssemblies") +if($PSEdition -eq 'Desktop' -and (Test-Path $preloadPath -ErrorAction Ignore)) +{ + try + { + Get-ChildItem -ErrorAction Stop -Path $preloadPath -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} +} + +$netCorePath = (Join-Path $PSScriptRoot -ChildPath "NetCoreAssemblies") +if($PSEdition -eq 'Core' -and (Test-Path $netCorePath -ErrorAction Ignore)) +{ + try + { + $loadedAssemblies = ([System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {New-Object -TypeName System.Reflection.AssemblyName -ArgumentList $_.FullName} ) + Get-ChildItem -ErrorAction Stop -Path $netCorePath -Filter "*.dll" | ForEach-Object { + $assemblyName = ([System.Reflection.AssemblyName]::GetAssemblyName($_.FullName)) + $matches = ($loadedAssemblies | Where-Object {$_.Name -eq $assemblyName.Name}) + if (-not $matches) + { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + } + catch {} +} + + +Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) + + +if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +$FilteredCommands = @() + +if ($Env:ACC_CLOUD -eq $null) +{ + $FilteredCommands | ForEach-Object { + + $existingDefault = $false + foreach ($key in $global:PSDefaultParameterValues.Keys) + { + if ($_ -like "$key") + { + $existingDefault = $true + } + } + + if (!$existingDefault) + { + $global:PSDefaultParameterValues.Add($_, + { + if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) + { + $context = Get-AzureRmContext + } + else + { + $context = Get-AzContext + } + if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { + $context.ExtendedProperties["Default Resource Group"] + } + }) + } + } +} + +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBd2Z9mhlN9JBGA +# KEvyZ8IlACQaul4HtGNYZ8A+FQ6kB6CCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgUOmH5mL4 +# yjhTPdO8UHq8XMO/+VLsyYWYIJ/RT1XbkkkwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBSAtHcsNdTD7P7unHEaac66zKW5HDgs9kQNlmx+CTk +# hmfADe9vY3K4s/N9HTv0wKjAsewt+t72P8lY6YR1JHkB3542pmCxZHf49Pzl1BMd +# 7SFQuO7urwhMsBJyuF/ZWEuPjHklKbGFUkXk3naEmI0tUr7VcBoV19AQkUXIGTns +# wnwayT3je0meI6ChBs13++mGyVIzrYnTFUl7aprvBy6Vd36G3l3RYQ6jIXIKlWWF +# jAilwLxDFW7wqTudigI7Fss7VTQw+ICyjfsbtQvb2SDIbt8bqoYyysu0Hrn0Bu24 +# oWAj0B2a+P58uJ5uBZtWPtqZA8cB1reyenKQU7PQK79OoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIO3zp5aPKMXZRlXnju58Vbbq42teCqYlPkrv0nZt +# 5w1TAgZf24vUx1UYEzIwMjAxMjI0MDkzNjU1Ljc1N1owBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjpDNEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABIziw5K3YWpCdAAAA +# AAEjMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTQ1NloXDTIxMDMxNzAxMTQ1Nlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpDNEJE +# LUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ280MmwZKXcAS7x2ZvA +# 4TOOCzw+63Xs9ULGWtdZDN3Vl+aGQEsMwErIkgzQi0fTO0sOD9N3hO1HaTWHoS80 +# N/Qb6oLR2WCZkv/VM4WFnThOv3yA5zSt+vuKNwrjEHFC0jlMDCJqaU7St6WJbl/k +# AP5sgM0qtpEEQhxtVaf8IoV5lq8vgMJNr30O4rqLYEi/YZWQZYwQHAiVMunCYpJi +# ccnNONRRdg2D3Tyu22eEJwPQP6DkeEioMy9ehMmBrkjADVOgQV+T4mir+hAJeINy +# sps6wgRO5qjuV5+jvczNQa1Wm7jxsqBv04GClIp5NHvrXQmZ9mpZdj3rjxFuZbKj +# d3ECAwEAAaOCARswggEXMB0GA1UdDgQWBBSB1GwUgNONG/kRwrBo3hkV+AyeHjAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBb5QG3qlfoW6r1V4lT+kO8LUzF32S3 +# fUfgn/S1QQBPzORs/6ujj09ytHWNDfOewwkSya1f8S9e+BbnXknH5l3R6nS2BkRT +# ANtTmXxvMLTCyveYe/JQIfos+Z3iJ0b1qHDSnEj6Qmdf1MymrPAk5jxhxhiiXlwI +# LUjvH56y7rLHxK0wnsH12EO9MnkaSNXJNCmSmfgUEkDNzu53C39l6XNRAPauz2/W +# slIUZcX3NDCMgv5hZi2nhd99HxyaJJscn1f8hZXA++f1HNbq8bdkh3OYgRnNr7Qd +# nO+Guvtu3dyGqYdQMMGPnAt4L7Ew9ykjy0Uoz64/r0SbQIRYty5eM9M3MIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpD +# NEJELUUzN0YtNUZGQzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUAuhdmjeDinhfC7gw1KBCeM/v7V4GggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOm8cwIhgPMjAyMDEyMjQwODQ3MDNaGA8yMDIwMTIyNTA4NDcwM1owdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446bxwIBADAKAgEAAgIVsgIB/zAHAgEAAgISPjAK +# AgUA44/tRwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAFvFcsonpxiYd8j0 +# IvBE7oJr3sQv7rrSSFZAmUOzj8SSFDiNIE6HKmz6s7NUn+76aLwz+4YSdVzh8k5N +# uP9SG6om7DpsNnXkqk8V+UbLQqBlr2P5VpjCrj3CIisPBRX6TOaS6Vu/Vt52RMkZ +# zyJ+IcbaqRwQta25/w+22dNOlZ+iMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAEjOLDkrdhakJ0AAAAAASMwDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgwKXXJiigh0A3RXQZZmqHVO1XUytVy0679ZOU3RqryccwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCARmjODP/tEzMQNo6OsxKQADL8pwKJkM5YnXKrq +# +xWBszCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# Iziw5K3YWpCdAAAAAAEjMCIEIEFder3roTqe9YoUc2Tgbwiu+Bhq6VhK0jhWWMSz +# zaB9MA0GCSqGSIb3DQEBCwUABIIBAJqIHpRyvt+gthojL/3XkvnHNosNewDaGCu3 +# S6VyJOkkdF7KdjChuvdZ2daDiQiA4homgXApYO5WzgFxnd4umk4ZpvAfTErqgAjs +# mrOaHaVtwowNB0kljciBMv7FqJs5B3ukrUQ4hs0rcxXecvd6Kytfqo/Y9MxrLTI7 +# ZDCGJkoaqGnRiWOk2ELFbJD8Qdz58bPqUld2gnCT2gfheDUTHmXioWvig8LryDzn +# N13otMpDGmIOaX91I3b1GF5h82aiGnJcUlkz5JdEHxGEG+Yydy9EFx8NLDw3jo2z +# WHU0LN1SqFMZvQgc8VgofhJI6M9gmM0kY4kzHCJ/6xtwUiUxRtY= +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Hyak.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..18a53248894f2c6159ca11001544daa915289b5b GIT binary patch literal 63880 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 WEh9E(pL;jZjM1dJ8d+Cj*na@ktwkIF literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.ApplicationInsights.dll new file mode 100644 index 0000000000000000000000000000000000000000..a176a44730866ec4548d8b0ae0054671bf2a90e4 GIT binary patch literal 179960 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 JDbRl&YBu7JY~mLWG1polhd`| z?@q{NRbuhZXS%oN+b3-63D7QSF_I5^I8E8@p_1WB;^C7nhrX!4c%*-iv+1aP$GPWi z1+`&!ZcD07kS*dLc`t=+La=DHmmS|Eur4!u+>))=q`#d_JksjTKIh8UFlEEMIx*R2 zg1Bc+J{d4+m{DPVFL^ZjUJ`a>WczsYWwUuh%N2L7;N6l@K*rtz8M`w`#_$%K_q0ZOeyb4%VE~7> z_+i$NxW9y0j7L;?i(Y;JTY$`g#_bjyi20lb2^ob*fwW~n%uqsROe7+Zm;*aRl9&7? zefxos^-*O0-%#X#Nthlwu5RHE@vBns6%#ahen)cS_45s@UlvFRj+=dU%02DJD~|^; z9d|4~on7XhVzTEQg)G~wRP^~k=p#|2tyH-_tb2O4M}~dX_?0EznucZRM7yn0wH9QO z@wb-FnFaC%C2^;dwoFyeJbxqNPT~uz)aQ>nZZ;nXcq?G4nzqyH5&uJ-iweDyOm_R0 zdwhHBQ1337w$GrxAc45ksm$}5EHP;6(on_l&el7~s#b==_TwUo+KV@pbtG6uQ`BxR zT+~&1V!`&xv@UK6nY)uy#%J)!J!M(`gfn|r&TBOB)0mbi|Kvoo?XuWYvq*e)Z=Uz4 zlnKm=Y96&E`t`Dm(Q0D3G9Rh^goz3><@>9J%0Gl!ZEboP&hJ(i+iL1kfH)R#D@3-d?2|Uib{eqlSm{J3SuxRz?eezC(;mIGTkIV*U*4yq)VY2 zQFVaU=Gm0 z6r2AM1q5UUR0b^eLnyiiL|wpH1fzj-`Uw=!KxYJ~VE-}DK=VIG1Ao&t=ZB?>5xmgn zp3m;dC=o1r!dsp=KlD|;7^ac`u}L&(M6XxFk=yrseC!*963-R5mu`-KpIW^{X2gQ> z?k}hGYR0fTaiPu=_I8~YW2L$7h;h>1q$NU>y^uL`c}#JZptZBSgM&^{TxK6){F3+}Yc5=r}T_v_g^X9+f6tsG{?wbI8W z&UbD+f7#7h<@1~k5_7MrFImKXS#23J%8#f~eW=!L71jOYxl~rxy9>vZ7VllZRKPSN zZvT9QD|i|RUICBbiBSzS&?qU$7xcqqA%2*ICMLR3W96m}9XfuTEI)8J;y6@r9CA{0 zfcX)1kx3}x@yn3wp}(s}$H7VaV0OKj!k0|bYz_Mjps$JD~IIL8HB?1UeDolw6mYQ?p^Z0p2($qzfr zI*baceQX{b+;8?&D=0&LS0Rh-`A#nF`B!opE9Y*spK^@Nl4TUx>+HFLCj(tm3l9hD zKNu(eZ6im!FD*DKY2wnUc`nljHVkZUY$X)U!&#?EFrB(wEbb16d0 ze4IVGS`!6H#~ts@q`kPQ>;KNi>_w3X?t^Xa_8W88Xt=$M-#fj-_L}h&%Jw5MK814I zQ?HC%=Q*XKNYs!2RzC@w2PA9`B85^089csMKoH@FuOZ~?my`q*i6C1?b(!HM-ATB&w=70eC%(2RumNNCv)3O14X8~%{ z0JAYF=H5@WfQs28wup8AF;FqepQB-0m^(`{fpK&s8x98Spk*7+JbjKZa zV0|=yH7)US!w9+HD}`GLx}U^d&U;?feK!5(>BtwmCGz+SJ)f4Ya`fs*x7_-!v#s@6 zii+WsQqSymxADs+7H}0eHKqwGbu>D6ugSgqQl@Z&bCtr)b*%J>3&OX^cPqBL-3_c! z>-AB(nzyD*^Kcx^(>ia~)t;98*`ANL@Yz`F`*l4yaGOhFekn+odHy>1#hyH!GgXtM zB^hh89=^}}G)hC1K}mZTuQL7AjRwz`*JC%2^{FPy`aRyH?-ekB%(^Ar2FHh+|NyR();O|y)LqP zi^>I6;~UebX$DtrT9;m(TDL{@fP~N1_PhfrK}$x2=$?uW#VKvx-yys3gX|LZ6DzKT z?6xE7XFqzj!0aAwvA^Ao+7;EMV?RlQKmxV7@D7|{&oS$1U-tBVgC!1@c*XJF)e#lZF zuV-i2roekzk8IrzrCe{)venZpN}1{5I^sFM&gYQz>k;PiPH$w}r^R=Hc4s`lC6qipuV?A5k#?g+xjUA=^@#n3&sK5~S%#BF zY~LP#GT!#od0qD%2bE)|5o2n$)K6ZrDVNH3R7s-v%f~H;@wIA>?!7&NmFEcJ{nUFO zQ14xTM7@8h34ceur3Z*GP;a2;I3zg}rLE%ylGh{2sY#=MMSgQ>1=PP>yx>a5?U&7+ zo>RDg277jwu#6t#A4B#3ls=-$Q-4m3y0-mZsoZPl z)rl9#ljh}@zdoHHZn^Nb8%wnnxqK>?;WHO6CpKF0=7Z6h@28vym|dc)|DtDEO3f_K zm)j!K!ir30-2M<(zISZAzjj;R7HvbJ7V9)xdA99*lC|x!X+&AFCP!#wYqVvz58g)FaGX znVsc(?b=60d|gEfJN&JFR@IvE)d6MOl$MX8^O@-$^j=r`T(#-wq06)*vF?Jmr|G#A zr5!4a-B*&cIZFQi#^o|mYWk$zBFvn*YbKQEv@N}?diS;R%L$jEI%u301*W z&CFN3GHQw1y^lgX9H4!fwm zy=eEX;0B?*N#+Q1NE0K7^O1Qu)=8GXbX-jXw^t-Mc7nk*H0WMLop0(#w3UFaJ&HJ&3zK)aoSQEHv`o?dcvQM@Zop#9>Q)Tk@_0r|8 zcGX7I^Uj8kf;a3Ld*gPP*oP51^Ie;_hg2^&mM8S zTQku{``W90-%9P8eJa(uQ?o0~ZJZ+7EOwM%eaen|LS^<$m^1CWyYA z#EQ?*)v!DAy75J5wVqVePFjczro_@4x?IdZN1QSEHIGbCTDH708nR?YNY+1nI( zA?u)&Gj){G;rEX}CsSi4zEQhZj1;fAaQXIBxAI)BhCjmPQy+wu5RuC_22PE{@N@0o zCJ+4DIWYt~eUY()z2+y14;%>N0XGM*Pmm~u8r%>gk}-({GLFHVpKvo_*{yql3W3F! z4}^7()Z8LXiS+IqiYs7sMR8@@!knEU-Scx>DQmqCHkI+4`kyGMy6koQkg-L0%n2LS zIk(hy>IA-C;x`~$CATgwj;-jaaJjJFLsN2Eh|%Poa+k8l znkrO1zr59Hzs)DU>!g6>*nT%OiCN^Dae{bFD?oh4UGJZkrFQ43EG$qYY zl4z1tx|-nIQ(RzvOQuspr}5nR)5Ye`Lw%H4?p4~0>VghvNVFVH*P2mcdtbG*Ug}i) z@xXefLT2U8RnJ7q3**PH&n#N#G^=#s352U|G`L^|@IpB`XavUro3xLpocViO42BSFaS8MF%H)-K;r;3e;O8TGs2aBGJ`6-q-Pi~kbK zs}`aG(iB)!R0b_7KU#$eU`ZqLd|X5#5l|B`ArW~#F4Dl^Kg2YAefe$6NsG7LzZicz zukzWLjW^x4rOQ>j8hvsv-zR;rrTRsUhFj%1c6s<+Todk5OGuz0@-N%d*l*#etU*Z3FmUo@$_t@g;nC&sdO>)|Gkz@U@5(IJTeZgzL< z#A+x{QWs{7OW z^T^vV`&hBlGKEX!YVwNx-jsE^1m@pMYrnbLW1ZX1^i9o&1FlsY2R)}sUgAx-i} z$Oz4dVXSLxWJuICG$aP-`qK=lU@$hM5E)Pmg$@-)hMI}(ne-+X!CTzDa>mALN5gkt zj^a!Iy`$`xeyoT{Hs&h>^d2zcqWJ8G{?SE@brA|?UZM7n8q6ymh#NAi{}{|G{dVZz zzo6e&_6M)vfYi}%#o~j|p&`C&Sl;|x5Vx&Y@)ZTUb)G+V>h_xXZZ9r}?RE$bI8&HC zEz7iS+f6UNSs|aww`_j6QzJpt^W~$r6Qbe^?Ob;&JIcCswn}AJ3Z!dSaF-T%62IiE z+K_&xr7kLjj zI&%A)MjRdc-d*(e8AbM0!oq@2RS)YPnjZMH{z86PI^%$?u9x=gyBpiX9?;&cGss&^ ziJtekll-b?0%5>=zvpUq`9YJ$=W7u_wKPzj0&riG4S{#P&XN71#6B%x}!h z@LGF%k2h0&<63T`D4TnqyrgDF;thedD@q%)m&`tNJG+_qDa~$e!p=tLxX!v;AqKK8 zk?$-|Ws0`+)}(vP6)E57x?AM@yO-~JE$;PX8*Te~a{aQK9_B9lZB^PPj40i1YA--* zi_OgQ<(J^AdqmjR?0NJ_n`}VkJrAz(Om1xTc6WK{`N!qI+CTc9voHOl7*_{A~)8boWBSpb#E*uZmbN_zJi{$#7 z7%$-e0a=jb6@Ljc0P8r98E6kOgWsFi2iXD@5|d$O|}}OspKC z{Mb13;;1_DcFMUdp+i+BckrW$mbX?)#L<^8PMfbDc5u7H)|Q}oH|w{!9TwB6Ja~W4 zqyzDy2k&k6zC2%Euq7b+CCOD|l>Uo-A}-fTtdINFo!8@!+85M$CA`zrCs(%1_T*Cv zy@*LC$L`FbN$K9Q*wp>(iLk^SpSVH??H3Yfa%5u8q?xsSel}^2w2G6bR$e^o=_u3V z4)f~XzO~x0gSO3oV zXOX^AvutBZx^WGsi}<*H56_M%DO0%Z;rPNNSE^;a!|Ac5){AVOS5&g%pR!)4*O%L7 zU1&R}==E?(>Ki8qWY@m6^>60xIQZr9p@7DUjO2xH@4j_>;h?=sMr-G;gutZcRsOMl zhxM1<^V;fD9;2o8?rnIb);gVa7RECx8kSkFJTE%q!tFvUeNOsEW_K)MwvLSN{Pb+| znFdQA99kjwWV>_M=0m4#bHXxjKE1nQ&48&2eDwGhq~FKh5euS1zPJ%YxDNSEMn*h)l;Wa|ZS!V!ys2KW#|WfDPYNZhF(DBlr% z>USK(6tf{d6IH{}cuNKr0joz)`hlQg+&8czr7-iUdz`%9tvXJi+7|K6BO7QNvn)3! z+>9HszJlSWr(@n-$+{7~UnR<1@a%f`r}T?gIQV`nNE^s;vFI@@2XUi#x}NJ(5;=j{fL8!*hR5(7xy1%I(+}(m=&{Z zW>ZKDH02YEyEMC>=$I0MGY@;O3}Qy?I?k!I5ER;ppQvTdohsuLAbz&Q>3zexM8$|P z2{yZ;n=B?W@+*B^{ZlHHXhs<+^$$9`J7jaSH5;xLW?XOerA>P_S9t4kbD@>u`5-ZOgnnGYUl=?WMDlRIcN+FBESn zoN5!JOul$CFKd+(Nv4~l9& z`02~)*WyX9f+rvRg1i-&v9`WGDx9{#?8Y`v=b7b6UTV3qBT1_9ZPUbxr+(gDQ{Y>X zyJCyi0#9dqo3obHTcYQRCE165joVRC79Ji_?aG#shI#9SiVp-}aLQau^2cc}b?&)t*#dkfHydhr9ceo!@CuXov z?2XgtsZM)ZG8@z@f~(esJlJS)>}>1C6>Hj(vJ(A1e7z{;ennUBXzfSN2Hk=QBcFyY zOuTWCO=PQB$5Vu2N$mcMkFoZi0Xh(eN8X*7URc5NX_?_5&^=Wy4IJ%g%Bjkz5r(c66tfAWy;mLuCk_=LPQg!K|HkCg#VG+^6;vYaLq!#RjB zyda4W-<6Ymq9FO$-ySGyh1eSELY+$^U27X#%AX9B&EZO32Yb!}i1hRB7u`jZCt{*I z-w&K-_=xUEUwDi$Xy!yH@kvJAt7H(};m{C0L>B!eN`?la&Qmg!29=EO!>Lil0s-Xv zS#Td3eY{6W;&jZ&Ri=bDUt}`ge@YBa3+1>=-zgNsahH95yC}#}$L~UA6ZKs5ar1yl zbKA$bX$lZkrYXp$E7gk1tX)J!yo(WQsdw{NEOoaUanGrgB2r@ccvI0`HsYnh&9{-b z{_4G5^3`(n`J~zNZ98V$rI3~?Lo$jDe#!2|*EY@ASaE)*?+vO9Q|qF9PfF6Mdg>S3 z3QZ;Tz)>uD)l~-_=__6Qi+#VwsF<~TMHQ8;vUIYTbwg^aka=L@`+&3jo2?hOU3dJ- zY|6e|yt^ZQq8PFLfwRztV=F|+FJl!CwPanL@*wC9%^rLHe;dX(AXuUn8blW{(j^&SLhFAZjPEyXgTR`D39M*@QF1zx zyb(!W_npj|jF=6GoOlS~caWxQe)Tx0|Ls`QT7y&me%TMbELz^xW(BNY(;MQS`1rzf@eLY{CU3?~UqIWo zP&K@AYkuC8Pl*YeL)ORc48Pg1wMXd-r7o@OVxidPl!CJD@&^Pgmy{k&+M-4w9G%ca zfAg`cd@;>?f>gYoiC1*qg1thkq*ltFr0yDdCA&`2E<5SM^{czCwD*uKop4xL}j%M}}SO%kJIw`#wHlEvAM>#Oz7FvP-nc=jnaO9R^MGy^BY z;yn*HAKqn|SAA{VG^eL2JrlF@M+P9bPH{+%^|XcWvsURVTv9#gee}R1>nRy73-0CK zyx{RH_=#7=jVH+2uQkn1pC!tDXSQrp9!JqXeQma&UYkUY3;98tsHWnblEq|Yk&_RM z9^Ud>_k^>;0SzsG08WH+L!1ctZ7OPnWZI)bjQiyO$bJ4^l0I~sjFBN4&oi)120i>| za{qtLsBS1{T#^ayrc53q*K9A@--gKVm-fBhA^34>P>S)K>o~XOt>KD69om=f z_7XE)okpH~UqMeXH4)YHbeOjzS9P4WLd_i6XPpUn4>_HdhN8`%FJ&Fnio`{!ebQs4 zx%-{GaiNHGyXmfSTzhi9*csZH*x-gPXC~4`zRgNviBMXYJ(JzudOuXZ?L@7bdn=fRBbC(@&oX;$QJPqK<`he*f)e&bbS+ai z%QVbJho;|G(s0|H~k8kThU_ z3>qZP<1S$TC;q3n%WvBL(eVGTf^RTy0BoF5x?yv2?ve6U%_*riwd55VqihcuED50! zt7O^T&Fb+X6=%m7Pf5L`En$C!lTmnhd4o{w9ji5NrtOWhBx8@=`l6URp~+2t%zg9t z)0a+FI0ww0HCBo-fvTE&rg=l<{IxxzN6c58+sR6vtk@x~ct`NS3SUDH*WFerYuY8; z&p1AJY?Vttw&gTmsO;6lx?%74)sq{9mK^b(_Cguo8RYb_?uojNt)u1HR5`Y_%cRsN z(N_~WzV*%Y8dB-@v)34|BSnPbGmb4`WwR&P~4Cxiy!|9|vYyDyq^ZKg<0GD+qZL z#9$1A@c{f|aOCItpPi@nYDg@2A3kr?!VQ}#J5zI#&mqa>1<9w85Ysj-U4n zI=j1J`vu9ywnn;EL>t)9K{m7^PC~SKBKu(G8!TZ6!7U;Rax0;oCeX^oD+yKl(Ty5nS5?fj*e>nj?mYppWs(KAWH0|G#i9 z;fF3`n>d&UcRgB>>Czo>R`AN+t6^jEW*nMQYh_SXr1EG%#n$Xz1NWQs*G&f`+f)LJ z$5K^~6_jkcFs**=zJv|)WVsodWIi{SgZQ=G3Rcw5Wg}DhTP70Tj=eB9hiax3s#84Y9+^Kw zY_lE3vh{t!I*a;bh^%=Ji|-w__%{8$svyr4_6x~os40w#Cn53!77vI3llac2f&6IO zO7yu|_R(pj`UWM*snHf1dCb#miDaMP_~zSX!C{uGrXk6VLmJ>4K}^1hBws_4Ymnq( zfziKOz7Uv-BqtRt9*&a*QEjGfW>b#MtyCQCDXu-QR!rjj;tyYjVm`1PF#6!!IHAU@ zy=N`MI8Z^O!8HshbS$1s`ODmUCTr*P&iO@`%68+1Nk$J=Ic{lE{-sms$gLi z>J_hv>)Ev`XF50YX!((YMylegm+R+!LE^ts4sV!eai}c1UjC)T`uC6KbXf^(s?YJe zu{U(qVIx7V>&5q%#=Q$aX(X%fF?G4~*)f}Tt)x|(9_Ss-pY513H=#N!Rr=!dns0|^ HlW_kJG8x>{ literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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 Jf&TB3{{>qHNUQ(= literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll new file mode 100644 index 0000000000000000000000000000000000000000..d1c22069798146202806bb6bba9d3b1c95c16255 GIT binary patch literal 108424 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

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

CkkYL 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∋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 Qpa1dyRMO56FF6JV05XbQ=Kufz literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..97f569f7edfab9afe6c465f6ea6fc3dc6987760d GIT binary patch literal 578440 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

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

B6Ak&A&V;HkVoa&&0LErAEs;eP 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 z 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

Q%6n&G;IOv;f1gL7_7BSh3YE1S6p`#NNVzTd@ zO*RpjY-ljqvZS}axCShZ;AE4{1_Rw;<$##b2ag#ko%#beYFw10HIg4~LCVNH~ zyUAW(7rU_Cj_#Q3SxuKrHYH?}U3LO>B$Lf$YqCuhyHOM-JF{Dp-P-KG@;(c0TES-f zS+_d9RyU-FC`$fHo%y?_tExWP!iQS;Fop76K3rt@QF)&Z93CdKZ@&1$b%E#h5~9f$ zPf7A!J_0g2Ng=+=`)ZD|69KM#myq)g7&o3wpDHr^_*~t| zE#03889h!Ry5B$P4p+KEg6?ElNOvpS3N3Wc>_Ydc`!SFz=)QUBIGwns6MZ!Xo}?(@ z*Qbc=wdKfrZaL_fe^I+ESM^iHsp_X$_;d@Op>XhUYY%oHt#01A**+C#gTlTQcbt7L zk0Ps;J;%?4j-IS==bqI-Zn|CH;+;F4BQDmeqM%``2KjdGX&;Q+M`y07qHR?js(zI! z^$)E~sQMb!LAs+(ubTZ&^Xuh)wuSG}SwSYd-V@8m9cFfT7fj#f^&1%A9t zP1P>l_Sce0(_gynttFop1d40P@DT_)e=WI9)e6*KOD0WUpx#MFmmY+jO8iIZ5euMdMLV^|L|bf-V|sex|JrrNO+fS&MC`hNQxw9SmR}= zrUyoA40rn@nLdhu+>exC=}4eyub^`);}!ImKu6D3$SdgTja}b5K{vLlCW2Scq2Ym% zeC;dfHUo8E^!bPY>4C8;p+7K^;GiVp>&!MhR)Vfhdk5V`+;99+WlJLJ9rOnw;s^A4 zjy`#y2;M=5h9^c7F}{QDW406)UV38WvVCG~CD&Mgu_9JBU&P)!Psc1jU$$cA)8m=S zlb#-}-0q{rw0F>5+5N{aQ~so^-a&sb%6>_8Ry7g4gANT(kEU#V2OXiSnlKHVyx=?G z9dyL4YQpjzbm#k!Vi3lsN00MHrJnfoXgcR7ug1Bav&?vUEIWuS>FE(M($gd5^Ym!- z_|qc^PdWMZ035yRoF*bqjr_25JTb0pNj-Vq9>X^%ZHnrMYVV|XbjVMSZ?t?Srrt?s z(D&a-w|=zwr01$PDT9OG%-%Y9v$%q^?K|oJqxp8Cerrcd;U7ODt%d$r6s*yl=Lc?C z5hl5?{sV4d4sRNq?S=E)aD9y%?akKwe7T~e@he4y8Sf{|_;r;b%y^bK`f!GY|6t*( zEqsl_!6OVgUReO#;M-NW0Ph{Gi=!MlQZUHzwb0Qk6oMRw895RGa)h3Dz!REh3G%6= zV^mT`j-hIen_UMEr&R68aeCDt$NBZP$k7Ti+0~m@lSJNQnZ0#zb#b+yA>hWnz>NH> z9n-gt(SFn58kW@dP#>W+Y3&YI`@c?6YX3Khq%~)7SIUJ^aa}8*zql@MK|@gLTY}r z*s*;-lDNEX@7U2=)R1Dcx71Wh9LJ7tR=$WGDW|iO)C~3Rz>dfhfMB!R0HF%@-xGFx zn}k!-|0AU4N6*;+a|(8h=P+dK7|&rKa~C^KK8K;ejyYR_9XsrkWIVJ#pyW=#j%Q1V zgdMq@B7i=rgWLf-PCJKz+ZoP=cR@$5SBSGg zGB^7Jh``wZ4cL)$agUvwQ8+|?^K*Ek)2^~8I2^VlSxP&{#?^dx%LOC1OkkHRz zAOdFtG(bm_FghE2$d2MikKl?)*-{iV^u{O18IMNm9t0}<7}AG#qMlaUl+Tu-Hz5H?5^Q)64dtx%xb#i zY@mefY$!W{I+C-2%huUos@RP}pg2RU%x)l7>udO9!o=FrQ()qYCQN*82NRzv40Wim z*lR_*`vd+{yg%wcU^VVp1y=jD_6O)~HrY5OVr zgk7P?Qvfnw<3p%|{r7~^J|^MR^dE=R{8;`_m{V|?R_pK?*sDDmr@?L3_{iMF zX?yL|m&No6x;^YWbpHNLKv%rlld}~#t;0Uaaazd@B{i@1d{{yxoW`Z&w7vBuwY~jI zYI?G7%g{nsvBuYn=vJCCh=eu1z032m_U@dQb&jOy<1~h9AEzNeRTCF+8s9oOMe47z z*jMW!J)Ltat5)_Me*!vszrvk5R9lkm`qrMhzv>GsVsWT8G~hJysU*i~HUo8E^!bPY z38!@>bet9>3^;A)&YgqDAt7shk9P@i|G0!J<4>yCB;iUmcsLT?!tq5%Q zkq-|)hKGxD;P6QZG7YP_lB?rSQ;v6ou-YR~a!j=~5nwfFz-p#s!fIP~EkAlcRV8Ov z?ecg-Gk7A{%CfF(i9pMwKTT4WKr1Jo0kq0iB})QYh>(C5=9tT<^OlL#N6O(3@ zt;^|$rE_pKNwkZSp%amTm7fi1VrjNAFm)X8nNn_L8OU(}{y=MVYwVQ+fAkbH^ML+d-tKl==pu>A_TiTNDpwnJcF@rSIwfGg4B-{7TkeVOutHU%=|yxa-N^SxzA7nvuh z(9vfV@^urfV>KV0BZ9A+Km*JnpBB~}=Gctat=s260wkEzmC#{MkTAfUX&;?)3HKd; zL&YWu1;ieOgtCD$1VjMDpaJHXgz@VpJ|Rk3;W^CF2Vrz=IA{ECy3%*thQrNubbHK=Lm)z6F)i!w+n;5DPCHtvTC~P7}GvF=gRLKe~bFPd-Qb^;nn7&b42iU z6KH@xrhNRmi7P;u#!>ccPWb2?;_8DP3d^sXI6sfzh@L#o8<~0{f-;@^2r6fpfuPC` zBTGV1h>;K!_SIy{V|GLTgy4eNpcD5dFb`7uV%T?O&H>>&5aup@yubZ@^eZ3m;b(0wy z`hwi<)=&qdE~;Vsb(3~pI&Q!6vs0BH_Ym*Uz4UUPzPV9`{>3&^AA;vOv{fTH9y+5y4I&kT-T>+Eoy+c@u`|hiQ^FY z`^py~GUY6_*9_*#F~WBr|LttloeiDtK+g=t7`?< zQ2!4_tZbg|Q~gh+OF-4i>LQqF>vXQ*>iCz+pA^(O-J?;^eX2yTP6rJ@)f9|ARRq;H zOBD8i>I9!E;_9O@3QM1=^SzH4cM+(1oHr!(M4)OqXOP!y!OK}@0M)Wn$dZ66VkDqS z`2ba`$AKyd1ypY&J3aoHuJw&73oVxeRcBZp2dY!V4C%5C8K~Y^RirVHAe@!6NEZWA zXLPYcxb=0h3)}5z&81z#n@CXism^M;1X3v>`&7$LppFFLxNISusbV(@LAaYzo4s?L z*;@xU6ZeSx&h=l}r^-ER)8OV_C+}RpUhACyV_5B1iV{})tw_RZH`YDv7y8$+h)Zu1 zcC6~(C~^{3gAX)<&c|wPsumjcu^MUm(5Qpe{$gnKd)1Fre+gIhL9qi8m zm)lnMT-j=85QYZ+YrneiztTZn@drrFkKXn(m{XwA{8tyq+=WUDytD;2O698yZ5hG~g1(XBLP5D9M0Ij=7KpQK1~hV?#%ZXYTk zfIgXp+*-Dq_v!+76JA|74?6m_LS9{XY=%li@ah6IKqd0EuP)e(6jbv0i2w;IbtQDD z6eJ8#Y1*3$F5!OTKdaazq264O1GIrkMDXSUG(aVjFuu9qL$;I^UV=(owos`RTtoej zib!U1=GzKO`?XNX%IezDX>TjIg8Pqk+;XF!-d2!fw}DDT@U{XpKqXT!zO8_uRZW=2 zN?y~O@U{ZtRyASywu1A$j~I6mDtVkYB=tn7WICVL^NQvyGoVu0DP&1d2{95>qI{r| z)#Ff!gn~-9l$jj=NzwWSl7*Jbp^`H!k3*#?Vuo~ChYXc&r7F@GNKnbjS)_}BN;A6H zq0;)g*oEzOv>f=mhPRfWf=UObyWHvO4{x%f=@L|;gp~tNeyI}ah~=^qs3SooE`dr1 z;R`lZ>_)M2(BL-IW>6`!w+?PAuAox8|E$(x7VBN#6^&;W>aAH@@4AcDy%g2Hld(xy zhjp#PMZ4=-4-&7|e^}SzrnPBsyjKcV`jaq_??0+V0Z7B!gG>_0P=635rHmX$98H_BOF+n?_lZ+!pRly^*#rvPrgriD-i`|oK@ zYcC0>rr#S<^P~5fW0+Hb+Wh@zWbOjB1@@oiYz0v3uusw*NkFaSP5^3KB}4*hTu$15 z)|S!Tf7XlWR=Sb>XZuKsK2T$*_JJA#=o@9o9e~=j{b$_D*nhS!bhJq!`_E1VC1@{` z?qx*a_JjtYM!t6cnaw}}HJ^_NkbqiOLI-L=!T{8!?LTt~SH?S3Y?4s>&z^{c54Qbh zM6mx18i1Nf826v~kS%3}mw+0VEl_I(_x)#|k=Z!r1bJX(tnF3PS$om;Q$hMh5yfH1 z*^AcxSY$7nE4(^hp&aiLt#N7lTC*382-diu0l1mM6ZWFHJl^OGq=>w-tmR%b6Zo_q z>dMJypsuoo$&yePA|%vB`9KG&$59sv<6bmN4ccO#nWb~2HAytvi`I$AD9iVvnONG3 z#vtwQMYBe?#xC}vW%l~^qJ2bI;fwkYc!Igr+l%(Uw)V19QNj}kiOk%Kw!acg!WHl_ zcbDDFjr z&v=9Gp1o-2S4pyihd^q6^!K6>*WHU|jcGIv4A0(;SN zwgQxN*a;t$+zFuMd=eso5-un0MQh9G?nUcGbSvG+UbG8I3ZGH77mZPy#Lj!sJPp_%ASIRvVoG22tXM$KpvAY z?nUznQOXL>A&)*6r)%Gfc41vrqgHrLri;L-;m5sb_WRSop|}?fZg(%*#l=f5KC7m? zs4;CXnk&C^d>Hk6_h>KLQ&IkAD8xtzit@2&R*xen5;m_*UR2lmZl8sg z%h#=(VR;-)O%XGs%Q|F4#cPvcY^1d-D{GN%X6wog-0kf6>ZJCf&1$~1 zc0~z!FIqd=*Q+6W(Pn7qt8=?sL+wRdRKs>JS~=8c#k4xdW$VZ^RctO6FNbD!^K$6l zcrO|^^WvRR&XoRxVeG>dr7?SiNb+y?zui4hWP`7JXG$NbNZl5Xg4F!zpD9gTb{6`X z(v;aa3mwc|Qk)3p$Tj0kX)9p2ohf}ORVFPi4XOFj^RvO6f|TZONg{I>DJ`%iDQ7E? zQiq*DOUa#ply*sogp|0Pv?Zx6qq`-k7tyVBBU_R#BPo)c!OzAx=wlfKsA}ROmYKFC ziBZj#q{~A`mr%%-q^Dslk2a)01Y44z0n3oD-I8R3Sy;x0HUcCp)0NP%Opq{OnQ2>+ zT*4jWE2!8cp|&JF9SQxI2O`*#1PxfmB#c{7B!msP~d=J{Ka zuBdbguUJ`KLpE(ok}J46zLN4M1+`rB3>5S&Nkp(*0}Xh^6pUMv5LBNxRoKHT6SgEF zZdDVOTaujbeZ;tnc*WzqA*myYtE-_K^{EYihbl^I>^mVA9(?80_CI{MjU$!9fP z!YY)IwMA<&$fB#ZF;)!?;2lOQ946d z-|jwIS5BvX=F;wF&M^%T+)&rU4?S1kbvXWWrRg>c55TH^L1Q(D5xwnEhscThTSiOgOe z+)>?1clP_?jpm_n3i|eFtJ&G7hN#c?<$(k$fqRr^gSS>J1eB8W$$d( z!&Og1&O6{)&8#Pj3OPZAXsq8|WXf2#vaL|{^gWc$$9iTj5AG@Mys?f{n+EqHWghE) zvUa$qqI|61TUYv+iG}x3s1~@d$ndk)0{2#CYk?DWK?~eRG_?R_s0Ho^8Qn`EE%3b5 z0&vv=kn;{Wt!V+WsF3@q5VgSlMW(cXm2HKp1sF zYlHhM%G=<9x~l32S@>XuYJ;K3@N?D%4_0PtgP|^HgNKNwHlPf(!9yUU2PmWso}bzP zuG#={-T}{V+JG!7WKD&r4NexB(gs$x6{goBm&C0eyi#vN}FJ{}2D%{uiT>7|hoR9U#DoX8e%c_37uJkPk zh0^_0k>MBTj&gEK_a{O|k5h>5FHE|_mF|!*%E_|OD7Uh$&|;Klb{gf5Z>E0>LiL3) zzUR_eT6g-h&GRQIO6yKf5lQP#*U>8WkMys_$)z`Fzu5BNY_-Ag3h?aQ0>g}{62@~CCI-nDt{Y>7I!g;*!+h?ebZS5@}n?LBuBT0tlgT!`)Y z_^tY3lX=Ut3=_`BKX}{Pb#xTa+6_1lXwSjH+G#Pkpn`p>ll48P?c--k8#T(aAT>XF z3tcdag)Xb}OzG!iJOIVbCB z5+W^haXD$Bt1Y9u(AA6RR=Saeu4hY%BJE37Um2B3S5xhJ`NjwF_M~H}u@)GldpN3te3aFIC~+AVHFF zfrT!YaL4$0iBf!PYP%}PO3tdF8&;<<(U8Z1M=t59^@Izr5E6>w_ z7#v+K?OL6%(1o~FO;|2;Ip6z;aTgc5JkA@Edg4Nt>8vM$&M{j#%Z!DtvQx;C7P@RU z`L1ZnXQ9jL@r5oDYN6|q!a(EGbghrNSZKL?q01ST#}~S$h#Asl9r8lgqf|v21IcA& zPQP+T(%2crix8N zEp*k?W*f>gd+T5%uJG$|_tH&DH>!s!U_bfSMdN;Q^@r^zKVF*yWVYM=V2pFe`b5iU!=$e z9{kVMJMduR*x{urR`-rGAvHhxUM=D>cA##3m_fYKtMy`WBAOsq=Y==B`L7F2oYO@U z*FCnWJphSqYkw<{@iHl?)_Xam=0^`?z}zs%AoB)5M$T4%j1K!G2N@-I0?2rYgh(KR z%Sj-kEu#xEdJ)}9Hv%$VAu0MGgYnk~83>>+tswUTAcJ`b$aocW^g@Mz486zFfD9r4 z8PEVS$k&1ln?wQ`KBW*KfsC$%4l;s-3xEulaL4!`RBVz^AVcRWHXwrtKn65`43jW| z3?H(ktnd=Z;Iai7t>7B!uT(@bFf-p;d$rOfkYQylVu1h|uHfqUHOik96v%j41{p*E zGN1uun1T^xAgDg4qHqzAfw)yoSb_}adml0GBFOMKZ%FEiAj5P%tp_r4mKh+U>=d#j zkbxMLGah9(2wie+wJHM$e7i131m=01{q~1P)7n8T(%&?RIwXH0WvbX0T~U(kYCF%#v!ur5o3Hk zVT>1cFowQrV;DoLwmppTTJbpZH0&|wmQ`Ski|d^>ffn74UaKf!j5mrTjPVJ{pijds z{Z9Y-=&809zFv`ijG^z^1pZ6!xZAMD*(z4Il(#@?ezb3KwI>r1*To)4*}jc%kG@04Z;l5DBDkISHh+WpqJGFQQxNMnK9xN{T*6 zVOaJ-3IgcMQ^>slNMRxaQr-z2y-pz@<>eWq5CKSm29QF&7Npp0(_O*m9s(qg(v{Fb zN|0~?km3^V7{5!!CJ6;nUXeix5r7nE04XM61SvjbOIhJ1kiumPQd+?^)Zea%mCf_F z{JdM~5=gPK7O`M}6jyL{{2t{`3JRpWGJ_N%04dM_QcS@JQV_JN2^Rq=h+EZ!B}j3; z_YvbRf)tPQhNPYdQcUM;;F~Q!Im--?Qg#Yi5=cRe1X3s;kYe>XNFkv>%475tJbs6+ z^;sJWEti87XILHwDO1D@>9P(Pq&!wtq%n|ILadxcx)_i$ql+D+tgnk**ltIkr4ciH zoCNiikXcQaKnf*fkWzL6btI6&WeZYF6}wRgq&%M5Y$YVKw+@~l?hy?}`CY;&ckW=6 zL(+To|K7nUj}~?~R50U}qL&ZrBb*oc6Y+kh|A0}rV{ICoN{#-_@QhL3t0-ZV4~R^~ zDDPL~B#iP;fxjCu%7;~~?kFFD)cojU6ymxV1t}Xu;ur<_8jfR>4~i2p3gs-XefMU6 zk^kjm!X6Va3i1?S#4!p&73{wiM){}&Q8RxGQuCvCQX4e>|+!J&=;4GdjX8XLvBB%v_MKV*zT z1Q-PxFp5bSF^Uh_QdW2gqj1?`lvZ#J^>Y-F?9H?Q9hw-eS^nB%jFow8J5Q}$`mm}x~#)2jAG?1 z(#2qu8C~ocWqn=j!gf2lgHdKRUBW1okTFWx3Dl7=3YRTLF;(nFQDBtJ{{M?nxMLL< z<$}U6zMtc>iV{ZoqDaCh9}-@=yRgzP^?#W8YCf;X2BY-eBl@x;HUGZ?srk|OxDb~S zg}+BcnI(Ssf;bUBkZXDEQ+ICh!&;@CB3h<^=({i!F!4R2d0Q#|Sve)~zd&k!^cE0c zZrC`Jc>~5dXDf_zhn?(X$(>-Fza$}&aprQ8ac;}#8s}a_x6+Lm=YN$HedA1@_l+|G z=wl$ry?}9M1Y?~49Xk4)LX7ikvT-H?;|vYPnS8Brwt*|-?86uVl5y@z=*BrnxPWnX z33rUYrec$XGS08f#+e9=Gc*`ylQ0@*AF`#a@RD)nvNg`F;2P>*Rm95X`3neNSGr`J zt*k}v+!$w9aCQ6*l(2VmFGy%aPfQmm}|`_@&NDVlTyQJ9{biPkxRsi^^QKdnq1~_ENl9w7Z7zUGaXY z|FDL@O{?&8Wc&P0Mae#YM`WsfK39=b?eq5(sawGJAvHhx_L;b@eWuLPK7U)BXrIY7 z<2_$1U_)C`|N!0BgS2{&mQLuNj=d%o6e{89-ecS8TPsC6tX1yj2Ov2Q$F_D z>T&x_!p1)TMA!NTfrXaK?Xxp1kK5-dVuo~ChgtU7%2}j~vClKQ*zNQBy4Z#7c67%+ z&uY44pD7{R=du&1BiUyzTl;LP*o~sF&zb%I-9B^EO7{6uCm*-((w4{mLYyNmR1FT- zO9EQ=U%gDVbb##t)AWwSriZ>=n-6v_op->6^zz`A!Mn8^SV{DL7y^$fvhQehV4>N+EBLyh$^e z_haGe?Gea%2fUY=2 zwmp6cw}}3hm!A5ZC4EhFX^$(pT$={ZByDV?O-qL;Wo{!K*Nkp98?-bHnZ%(ZRSFHsJtwolFTFc6|LW|bQ z?9^Iw-nBuh32n9K(nULM^?ypJbITF0ZL#;aW6R&Yt!!-lNomw(dJp^0mS<^&oO>u# z%T*#nVNi{;XQ_j1oIP6?jI-y6rg26YYPn5h9i2y|YPqvh%fVI4LC!niWz9Gviwb$J z3eh-wp2(DOW@THUYPshtosYB3ULKq-ZadDNxU}tAd7Pd8(srC7*QUV>NE^plzwP!! zje4`f+;$(B*mhf##@lYI<=JN8c7m-7QK;71DKh-NwbraV z8oAY4tB}zSg|yaNQ)|IhYeB*sCCfr{)XKI(i#eLvi_KA_nlMNEZM8pwwQcp032k+N zQg~Y(q^qhvSfSeLd?Ldi%xx=jtF6ut86BvQwt8D?E4XSaNN6jvEYwz3wiQ~mRc0^N zR!EiF%KhQj*sf<|yDuH0C_T$wL`2WBa=S0FPjIA*!}UCTg7)@ZOW$tP8E{I_JkN4Q zYx4ze_#DFuoqsNDo2osAwSO)wY5K>o_RfX9P!Q-lT99r8x^Uog)@kGeB#9qx+s>!L z-?6Os++MDrQ7pa_X_04!$lg1VhpHq!C|n#;^P_(}D{=l5pFb6DZE%7Rvpyb<;5xNZ zsr2;*&llFR%TEmH6g(R+Csa>BZlqyvkiVp8PW|MeRsfxa<$T zYa?dCc29oWP$8~;@3L*;@ZM$1vkV(}@A5For-nZqQuCvC6f4YPF~aJ6wc2Ji9>rR6 zoA)ls++B>Ad=#tY*Pax6?=ojA79%?BlYB9vll zinSNft#l(tv0g$__`tNISeZsi>=#Px!KpfUW$bCFzN)$I9mQ&rO+Sj&+VdqUF1^*s zpifI3ZIt)8&Ye_TT##p)97J3dmyCJA*E>)Vk~53joS62Vcd(6H2D z62_xgeL|G7!trNCRijpTO{Po2so}??SnYT3C|0=Lqgam;FD-*uHQi_A zX-BcT@;k?uqJHllowD=}l=q`piQp(!Xjld@<>OJTt^i>gmS-?5?Tya~N3kNVPNP#; z9>wbXJc8pgh{t&&Q%_t5F`e@gLgS{$S!OJQlpRKvv z3*7B&y~((1_+kmGy^g|fvzjk0g-}91inSf>>(!8>SZ8SHi#@wrLml9@sD|xPtmROn z71Lr5m+fMYsbX_ci#@s>r)R;;-a2@xxOx_B&SHJ594#jbJ07U}Rea~<=E9JC7kqE+ zZHT^@cL`S>D*o3*qc7$~!kX~kFB|S<)>j8`^loV@Ft>L z=|(M zG?K6VWRcA_-HLqfAwU9+T?rjD1_=Xboc75gmvCi#H5HpA)F+GHjfA&135np7MbH2m zO~UxeA|JA)tniY5jLX(P)(Y;QEV9oO-N-*#^eNq8kGY1ftF^N@E@yKWAYNSs>5xr| z>w<=9$KJY*tK(~s)q6oMviG3lL#e4I0v8!HU_;X}xyW=1jMwbV%aDnfE=yH@oXF(N zSg65sIr$7cSGFZt5}reZJ(zxl_B zOf1b&hGYNZMAp{U#>K~pGQ0ga(Q!J2Nh56O0WzxC{4a|}n~$x&knAw;dj?z0Br3j5 zbf#?oX0z4TRFrJ>wMEi?ipEwCWvg{FR97FT$Vv7ZKK2?q-(I(=X4q@eEMTv%6$ILi z_WF7%R)*yIkeVN@y>4GvB`$9baeHlwnZ4eU>^1V0n?~xM zOLvF8MxMejyS+xJg8jF$*Ef(LYUUe4YJT+gv%s8UujA2O*@}IY_ImOe^@Y98 z*$R8zVJFjBawpj9>q>}ZueqGGpQSCMyPu^O(XDhN`&n)zDf;%BVcECW2%y7-k^7Mv zngB7KINFv_h+sbpG}vqMwfk9Y zw#i=m+(Uq5ue%buy$%uvdp+%pdY5p=_+~0LNvQoS??XaAqn-%%vp|ErHVNZ?79X;u ztniY(=CZZdt>7B!H&(>T=K1?gZ?1G{A;-#E)L6TMtK(ZJe^OA!`u!;AM|Tl{v4#d? zZ3@QyEC{LtnH8q7k{5C&9NmSuRZUp#XK}vw5#ufzeUI~oq@K8tV>9P(P2(XZo#z0!)uyPjZ zVis{`bg?gStgnk**ltJ1MI0@0%xb!{h(if^KTFvO)RC4rxNMg=OclFP6iXbL-7ayo zXLk(~-uc%K-g&+-3Tqs<)LMt4+Wn@#7j8LJzt7)U;{YGsUA&?G13u!WRjg$^Lu(-J zqr0V|gpZCFNj|!PZfc*=|3g*x*{bI`Dyyn*tpqJb;^TBb-NQbQeVf3~P^GGG8~D*x z2A?qso$o5E{DjauD6wuccZAgZ=zGJ63*InE=rT9HFJ!A~q-{9v4Kq0m+-y!u54TgA z2xTaFdF|yunT>nHKCA4-d#%H(H4+w>#i0yh2KHaq<8>!hrpCQ9q~=G@;{|gHT$%6j zB6An6Ea36V*$TMQVV@*3t&>Je?gY4UdkK-?3YU{SUTqm&k5@0ETj@qTUU!icJ_*d@ z#VAZ-XOEYsq57)ky65pS$rkr`F|hk!$jc`#f}v?1FK!ojyzUMi-AW-IuYbZ4`^N`~ zz~coCV2FIJ$IE80z>v>p1V~`0E1`p-AYlMQ(>z`-;lAU0sMsW-mRCN2gfefslM%u4 z3N(NrlQ4R`d_t76!fQNUT)W5XuDYs5t?-&mcY{;Ij~*}k-Sc?C?Jj8CQ@jL}teUPB zo#yd!<#&$nMg87A@_2m^<=x{&1RgJF07|BO^mw@fggu}%!Q+LvRZUoWyqxd-#|Vx< z$>Y3{sV4#@(>a5TW`!hYnE{l_4kJqfN{Eqw66IrrtR4qSBy51v3A(Oo4=tAiC1+S3 z2TD`K4C%5CB~S`uBY`C=YmsgSEY0X<_js+Zn_b{;XGgFkkJqf`OJIo-vd60(?d#PL zkJk(h9S-hp4Fv}m)v)z=l|zkIOmL9P77m&!HWv#xnAr&q9yju}FP%AWYhU;3V8JsJ z7QABz3+^d=1{S=8X!L9SDDk&V@ORxpyu0c@U_|ca1x9?G>T!S9y%i;lct4Tk?|PpxZl~cFT2SI9nv@2DuXNkDrSu((fAdMf% z0UshX9QQ2UUz`Z}2jqqdC3Nn}RlU~iJbt<= zY*(XN!8hPNI#~tjn>7^IHNexnN3P@Q_@QL=UeJQnN6^u|M?|n71r0dMbj;o(ui2ZI zArtXYma6m~nVcC{G}tI7pMj0awj@i!Mu?EG5#@u8tRBZkB#ho8OWk;nES=+_Nurte zs1uQ~kb93zEP0O@j(zWuwY9Zz;XTUih;F4D z@x(k0}Zy1e61(O zW|VB7&o2Z>wy!Ip+rA)Suzk}!F)rbb@u?~{NhnXu$B@uHF+|{rfd<=W5=Kvq57|;y zc**v0+1kEVa1HgxDPm>wd{4|1l`btXSXql2K38yc{3PX13d-<(90lDILj;Bo8VsK) z7(FovTGfPUtjzSpAZ}F?mYx{rdml0Gq5<_dZ%FEi3k;@n--zZcGmL22DP&1T6fu$! zrF@L2)#FB#gv|oO<8`f%iCJj5e1X9kmd6e16fr}(tV1@ceNT*)vq%@SxG2%Tb?dKG%8*Isrk`!o57rd zE$6$<$lS%23%Jd4wgOvr*a_y9+|-EiMX~2fh=eVp4=$)o(-ykdSLvLPxGa!hl?-xy@X{eaA0Vu}MO$D}4e9g+*j| zh+tg_8j!0=7~N(*Axc@{HEuJm-EHmIqyK8f<~HX{PJ88o0;Q$D)QTmix~EHkQ|;5I{C zeP~Hx={9q|_a7rTqFRshMy8&KYE9>i2%Dv$oMi^8Ejx@X3DqJ-Lba5SX|;MB)snD5 zwJ+ASK2~L+<#JT(49nxFc8ZuGUDlyQwP9=|r;?SmNH>FQXLPf>&DPh=E^xQABeIp- zY*zCnWJ?LzZPt$V^=gRQY=(x8-FLT!!tRS|*t*Tip++kv?9OG2-Axs{RTkJivs>(* z{AN1l#r$UYq~f0On}EZ0_t++Xm|%UohwAOZ)Q9T#S4AUsKV3K*{(D3tA58ye@%9mB z515|2MS7+wcN&5xt`MtcJ2 zt;3M$;4n0RZf$3vdFz@3beh0{_0|N?QNH0gKu7I{;{Y9n8;%2XRBbp8$6qH-gyYDw zymphj|3!|+DR3OU0upZEILZ}lhvTMU0^bhDO~V3?qhXQN;W%m*?7tNpf0G2!7%`6Z7U<{|3UPCO3Pk2^P9lJ#&;Xdp*Sa~m z6#$t1#()3`Fn1+%z#JqDfO(pm(wLAIk<6i62WROG~i;>F}pdv zW^Z1GOvJNUs?yDAa%LRZVA-5}29_<`k}L_!B0|Elln<7*dK}A=FuFM{b>rr=bdFyq ziDqujPDIA8?&dVH-@ETUJwll1< zC1Dksz%j;_gjG97-QD7h1`$_FGw!YW)&a!a>mbluXuh;F4DaZ7(xQuMJ31HF$`5TL4w zi&$lvTbkP^Zs~KNqjxC8E&W-n?M|qoBK`i2$fT15hyqqgxt5^))4hX{_W0ya_J| zB5qX^mTqb1dml0GBH-~jZ%FEi3wWk;AN1rbGeA$-DP&2Y2Qd=pp?pA()#IRtgv|op z$8}xR9$GG6z;lM>aR4+$%#beYkU>!2Ep6p2(#0&^&FErZ+FD;1yRhAkj*E9%+M3mL zY4MH{vRk_B1nNjjTU@qFTc(QLD2k=6%x;#p+V=zX?zdsRuXM29X~Ji$ZQbnuG4~~K zk`%@Ivo*Urd$8>G%pM@fDbOy9$l88JX2xUDGW5o!@UVsv|QaBO|jazRJwX#2A+! z+xinQ8^^F#Bx75|hFtgkT>Lw1$Y)kGhIKaL_4~jp5e01cEfAZR-VQoo&CS?zF^=^f zlzX1w!*3u#fe!;*%JOeI{`yEKaqvjftoIlESbLAW@52}3Eo>^H$#%19?TD-mg-qfBsq4_fF= zArqYJil%m$;M6oM9!CoytW0o0t4wSOa%-Br5Y**avC}eG-!fTHQc=SBZxH(F`{%eHH25g z8!jU_qD1O2kZ9;9IQ52zbtSKu;N-PVa9)S2tXnFNo9X-HhO_N-cN991sGQF zQJ)D;s*3}=5XKXn%GdT|5BB&-%u)s$@z%>r+l2CFfK2nC{QG7H&O_wgzA;w3pZ`kyo$ZFEe#7H&GtP`9wYi3nA zZETN`Fu_@8KEp_q5GFXw-agYBa)Ps_hKd3=bq#?6o7S+L;EcN(t!OBamn906s>r<< zp}@dSz6%_5uK9()VZ?xs2Nv`g@L#}Y#DLoZpZR&r4TcS80poc-vEd=$JsJNF8}eBm zVZ(Q#9G&010a3t)H-Xsv<~dMc7d%ZDLZ>X>fQTw4vHiV1?x#=$*83Sr&L5SDGBO9i zy5SRL%$&ly1`}l=TLkM8wjr#T+XvR&3?&TK@v`4USt%o(D62%Ig^n^&b{n)XJ>5hZ z`(G7!Q2`tPNWD+T!cyCvYS2U(??FzK{hYLWBSKD;T|>{V6J?AbtRZ#4i}}ilGP#KW zy!4i$0tUQN4HbAf4IS_rG*PA+wtBySSkn*_Wq6YKLkP|N7*s-gNk zr=jzCgC<;5!^OS7L#%0t376}rp-#9kf)g&J&gY4Se!@k&Y^*DJ=JR-2`n*zcboIX= zqBUpugv&pW&IS}jR#S(k6`bn*6Zx%zaCqNm1$DxO5p;N@&f!S~{e%k@&2om;S869* zsBV@sj3-=_uWiJB=N+fUsUca8A5f4wSDk0bQsX@1Mqw6no>aq}C*{+5N;&F0nXnj8 z_$#inTtmsF0}9HJJnBdXsOi#$Is|80op2F3O`4d42{lcuui7(fVpTS6Xg`>MSM55} z*4(wvWrT7l;a>EQ;C76Ndm+@WuO?baWRJoRT zUwhX+8Z>>UelK{JI?BsK36ctzYqnCaVLmjj0d62AL0K*l!;}qz!)15 zSzru*z6AMPi$gkmEl!!LW-SiW3|)(3H}2>!^y8Db4VLzBk{<2`{wQZ|N^rxt0B-i% zn_s*E&6VIrcdC{u$;{1M+sttm(s;N-ITO>j-!-_i)v?LUjeY~i(q{&Dv<|DbwYuzv z!)2#%PDXnv_SW2OertAXUT67uxpy`VyeW@5n*&?G>~l$S{-~fLG6$d{4z-+&*V9$| zTl34g666;9R5NpmiZFh#aXG3vtHZkLd1RKqI9DQMi%?O*Hh>ayouuNZGn~s?pdwx> zDq4thB^K(r5}RqwMNdG3Q&FRiyh34Tpi+1dkrrxvkQXrD3lZ!L!KZ=lcF~5(xyyH7 zG`Vo&@(<4%+p6i!$QCKqMx9|Tmy2ppu*C3UEX`5;LTBa^!is7UWcDqyH6)lgB9)6k)!)?};w zQW#;1@aSc<#sS$1cofxeNpE4$a7otwVL(NUm|Bu`NgXN@4VSdfqR7QrYq53NSXXvq zLq)tSQBkQlj6V+%tp=!QGo&+AB(hSMxomP-`&??n@qqKRf;@L!E4Z|`2>GoEmS$}{ zybDys2pk{PC3UDsD!8RMCx_tAm~xuEN2Mz z1>kHL-+2T4gz~kG*zY_l(m1{MS&m0VQs;muiXnxNr3MwnjlwL3il~O6BFZN!l5!Lk zF(FV99&rnL^KqT!8cHrjMaqyoii!rP>C%Nd1XT3S%0AU1r%4kN71cDcqN15Ku_~K3 zG+@TA9Xt?u*w}J=5M79NRg*=gGgKr!d-=MzA<-G;L(99EWf&^rB~j6eY}<`m6?ss! zRX-i}Fy!IvFt_030aM6hXJtyGzw-Q`*fz3fY5@R497u^B8vLn(@CUX#+Yd8|T z6Y=kG5g%IP?RRORJag-Hn2S(cv^g|K{g;6lF4`MqejooF!+8tjWcdjNlc1VJIG1BJ|2f1_|OrXfJ#4FMD~f}oJpfkM&HgF@}Hv99D9DCA`c z3QNV&)we-Js{tt70qG1BimWDxfuK+;xU{z;@>>M~3U3UckP!rhqz)8H1wAOFqBzhS zVG~eDb+epd3<{O6ZNz@(L7~Q}Az6+Gg;M7Ls0vURvebaWxKWtJKq1vIP)PYiHd2m) zLMALg;kLNO5z!J#E(L|kkURM%$iu0O&dA^g>|Mg zP)G@_5){Ubz%mRJ^0EYlQWbenM4&LROHf!~!s9SDMNG&uL;U>O`M_lyD?1n%&||`1 z1FI1eF7C7bglkWZi`Spmg4u;e8MVOt>?MVZt5?+7^0nFMwN7{#}MhDMcp_r?YJz7HC09;Ttf(udc9tIbyP&TZ& z8%fR|6>vf3$l!vRM*tTgTLdl=w)y#(+Xr0S7fKko;AKB>QOZccMI|CFbQExLKWI?} z7wnH!a6tud8aMTBFyh4fkKket((Xb+RmgB*N)Hyij0$hYFHQ*v{6lO7SK{X6qP(Hzhl%wE+2@7y>e_Us| zhLTIcg)$_Mf{Ouax^$rqb>KqeG-+aji<%}@a51wcR%O$MPQXQ-=?q*@LI4+WBd`nu z7rZRNg;Yfz6cM-x>;haA*y2)~hns?5_t@fE_;+H9*I@j|V~Ypac+(M}={y|9NyaY4 zzZ-AjBP+rd_eT7L%)>nZQNR|fK@3}b0lGX3h24Swoq#QH+ASiB@uu(J7p_>(MAI|N z)*uoOfPF}E{-`1c#s%a+2`V#24i82uj~tk5V)_{;l*nN^TRC>hqWMBhfDA#{{)esE z9V~rXuzZg#=1(7p!H4NXc!u)q_7-5a?~Pzlw(dj@Bkv2r(0D(RoIfhwnaly+dH5`mjbCt})NV^Y2$W<~o2k*=Xu96{j-kJG;Gju*kIxf7kc4I1F-Z|A! zy|dHMdFMf^WK_e&y@x}rX^2%aw*>FZ2(FSLb>3Mt^s8jF%f`BrXWp5YrFSkBM_1n; z5v>N^`9P#I?<}&?NB5v*p<2PI-a*K36~ro;TZ4CI1XszBI`1qM^s8j3XqGdqc;`N! zB~x9TZ;LQqC8K<8BlbJ*oi$Dk$#T4RmO2N|R(R)-rN%qQjlwMEovDU-XUeB{mU7fP zGhyMK55P4J;g(QxsdrX}C8J*LRcjeHv-Er@65|`m5fwH9u!z56Xt^gyYS9oKIjg7zs7g}C&4#*|Gd=v^EIH} zKc5D_xg*lQ1vK@~H-mQv{+)m3Lu-J4J{VE(&yNBb=${WkFK-`e(Lz)jv}KoW4xG8~A7TVEX4L zkaiz|kpB6n!9O#C{+ZPIXXY#YvvgeeXYIyR!2ENnq55a1VFUlH8ZPcV5n@e4_~)Mm z|I7&bXHw^%MMLkOwado3l4t&zm!*F$6-QS;91*Ps{`pBrXZ~4aHF^nSNFcrT&=-3;+ChTxYq4l1u%wG9-`s z=R}hNM!0mL4t4%n z9u$#(4(xl}Kl7nAz&}3)QSi@C0~zR_k3{4^|9li8@d$VZNzNZt|IE15KT~GxpPvej z_s`5VF@41#|11JV^3TtNU}$_aNzNY?|4in{{+XFa@XsMzijeFmHt^eF8s50V=7?&In_}8v(vDFe^w0__l}2H(-8jo7r{R>g8rG*`DfA4`)BR4 zv99Eqf97TBpG(Ej)sI0$tAT$$0qM*?i>xLOZ~AAg;8gEKs!Y2Ni>Sj5^*gq>@+lc+n`)7?)L$Vz2pQX;hw-t^rWU2AbaicJc`DdzO z{+aUWpQRl2&rDeO=VNh=)43&-TKXfpX*F#{+SYje~uf0Wte~FW$B-#D)OL+{BvO6=B_#lCw5AX=S$d;@DzmD6=W?)XB>H#ckp4rf~nb)v)kA#Y{8<*@isn)S+Lta z*>bc#C1vw_(3X$onB=vw58lfGpgw z3zpi?pSNo6JY8l#HHYh1MYagVCS4yyI$hox*c0s!fxB|n)-b`?E63))VT{XC@i#H{ z){Dosd=TpYK-FrzjfsN=E4>Y8k8O{X-iGT~iTqSnqO{&O#Cq6|7dGeGN_~Hc9tPgzQnjwjM<;dK8K4QOwe)M~Q3^8uh5awjKq0NuN4rZ2qf5pStjE zWuKy6efm`OzB~sBv;5@}o=Y`L3tlZ2jPJ|ykV5avS4fUmN_c^UuR;hbz8a)6cc>L9 z308a!N%wq&wBm2fisZtIB+iP=(#VP;TZBed4D4q2CAI2f!|HwcS|rT!^;EC4-ZifO zh5Pb#NTc`V8zj$#621{3EcYgm&V*R5=Dwr|+?W4F(tSNb-j~0%`;uJTmn81KWR~Q< z6e*J3-H%a$x2-&0VupUJ&dK8K4QOwe)M~Q3^8uh5aZhBu*uReWh{@6qDjPlR=i;*zP zFOl$F624o)_el6&3Ezh>SoS)x>{j<*F!qb`dG~&#fL&jJE#W1{ha|jI!pkK5u!J9x z@S_rb3?Z!kagfgZp;l)Ju=*!Rx*tGDtN+fdPA;rY;;harjjS%RMQCL8z>e4{+aSwNUi$VeBRjV#O9YHVU~YV!vB%*Qxbk!!p|TK*8V}+kLQnF2|4O_KZ`W5 z_w%#-^OEO(CH#VfUzG4m5`J02uONh_zY5Y>AeOGV?ox0UM1l-5C%K`$l39h zvfq9aX<)}rmVaCFTrJ^uB)mq#YbE@ygx^C5J6;FUSva)EQZ{<*_er|nLdYKb2kWuq zqQ{cB9?L9^daTG6p;3SMd{v8|H({U=ndwAzhgHGUKJ!Sa5-87W{hAl_SXh26{$!dgEA z=`0d!)!ebnj63!=lI|@CdB^_A?pShh$C9`^mRXWJR-{OFf5!%{-LVCJe$h+H`;|rZ zxnHYx_&G~0?Qm0Rhp(3R<1df`b~rrCe~GIs{}n>m;nyIY&4>0H=0>mi4N3QQgzPnc zwq8RndJT!|HO$he*NAKp8ugmMj(o(KWAo1o_uFgUSl(~cs!yM(-fzD}LhK_$^-7D~ zEEWs*+kAP4{Trq*@a1gC zy9V_dZ-0_${d-!~FZ>k=v;1!o{$0X9mGgi@9N~ z%}Kfo5Yk$IGi#9xYmqo>F-s$BiEI%XSu3#3TG}rM-qX~ok*yX}vGQ*Ic^_LXK?=3i zB(Ac23L$K@6r?jb)K<(5TP-8$wh+=*e>Yo^3tN#mTQN%`TZwED8rdqao7sw5HL}%m zDpuO+_CB^+ffQ=1Epdf!`VhiaTY+?@hT4j`VXLi4x?3Qmt^Q%QA{VwIakgTXMz#{! zA~dp9U^lZBwQ6LmdsDH}R=?_Ft8I`%ZM7Y)vV41lu+_KDF!?mcg8ZjovKUCKenx&@aQrkd$VI;?=+`+0iz#-R zzGeZZ;7u z`LX}>+*OCFBAP9lhz`<(y%x5`La~@@U5Ap2jeS-^37d%KWxt8&QbsxvU5Q8w9c3bV zcW7aHZV5eCpAT1_b=m7|B3g{WD6L(VGp@-*G;c*tMDI!3-3cKlqW^^_iEVet2u?(k zx`}A!D<`7mX2RTq-dePPO+=>}b~5fW!UU#agNbO>aB*)h=28tY5&ds!sM{Sff)mlC zZX#MV^b^tAWn*2*vx#V4mJ`vX;^^x4M?|Z^MD*TBXA{vPtH~^-d}f7w+?VG8q*_5t zL~mpTb-P1Ga3Y%2O+-rt{X{es#g|41t*@*=hiI?P#&(_RvyhwWW;w%nB3k*{M(lTf zB3k3rkSxbfL`$95;|_}#iiIpS6VY*_FpEt@%iW~A(@;JqqNN<2h-N}eM1KnJAH6+r zo#h%zE}e*0hUC$S=mBcFbfFGmBKp%P!ur7e*Yf65HJUWBd}c-E`ZuvoM9-{=RoS$m z??jL3djb9W!OYCFUyH&xgDjKVj}vpEKN4{3G8|8&w-0~ z$KpGyPhtJ`39#8V@bP{fH+CtI@2uXEd}p;ka01tH9}AkU9Z=Ev~AKgxU|7?2j1UPmyvGp9{wNG~J%A+VkIGq6WR8qTn0W+560${zBw?>rL=toRAd-Edgdq}M z_CqA4j1-YnBGN)fK_m}@7TWLREGga>0T6THJm0`bm4q}>N0B;FaDQ{o*)5buyWyu*AY-jSOZct>w#Dqwgg)ll({ z)35>FQ4JUO4u)9M5O`-6HB`LA2;v=5hj&Cnk9YKjh;=2;@D49ayi+QU8|mSQfUo1! z)|%Jw45{gh`BCSb^t`A?Af4eIk=4W*67OgQr+SAVzf}-;Cu0Q_?=XURht%O6si4O@ zR5Z&OHo-eoH_I8uct`o#M(m{??`WJFlI3{3BXwS1!8;*K4c>_xg;@;mPz_snNBP7% zQjX#sCM@vIfw;zZcoIr3#XHK7Jc@S)sOi#$I#lou`+(sck<+A!iFaz6SnDh?>rV{;JC`85!ny#JjU?@-f4ns z4ns~nHV!Ar`J+0n!nhRIP>}+&D6XLj1xHcLq2PEFLpc-E&%uW%n;yl8J`swcKKB@k zc{~b(6`w$o^G9WYKba$=7-k*;#e{4Tib>c8C}M6O6!SPJVJL=|{ZLFPBSkTlh_ujA zP|Opdh3VYf%Bi8L5VfGn|GEaE5BQxOW7^nufp`vjfgx1aStb!x^HX#~IpXV_nHJ zoWaWyXOxPgt3L@5tvSPwkvJ0R3}=X}CQgVrLn}Dddn)o<1%Wf>1f0PL;tW!UGo*qZ zXHZdm@rJMo&Y-$k&M?Lq%GWkxzwSxpcv<2Msfs)(BAgM}6`XN5kE`&R72%9m0f#J< z`J1O93OM5#Aciw`$C%1B_5X zTnl6@ax1*K7AoI{ZEvD2caA|RcxW9c{J|X*4*jO%52Rukt#+x zM}y;04&_WtUwPNYYW|4q(e{0Mjs%V6Fby{Lku8JeRh#v9aW;>H&kd1h)r!{a>7VS& zD)DESIC6&Fl+#Sdp%9q+c#@nyDsYI*k>LIyl69B^;8w4sb~CK`LNyDAiEmkkhaM98wJz_nrf>rXk?aM1Vt#ARHofa7Z-t za7epstSfm2hj>}Sp;B>l^%D`%Y5<2$MmmE-BCCn7BplKTPW7IP{8mB0p?LugF@kW2 z)WIRCpoc?LG|L%UU#XpDqPkhmFor|Q*EV9m^KeMx)Q~L4!y&2jdfZ|0G*ie@1Bc>9 zVHSf!RKws9x4)`|a-NCjM{Fi|=y`|&9y%4o@KE*qhz=qPaN*C@BAgRiBc>hSpC7T#@%{M`0x9}0$g$@}E#5jEV)0ab5lPM;eb0|z zbbwrXbk_^OD*%?BA0bvV5T@rxu<}J3JwJlgE;xFA1S?!{^!x}`wczLg)eFJ#(2e>` zOurl_Qrv|Bs`sV~e-yg077m`xpFT*=k6=|Iww@m$^|9fs_ew&kk8!>x9M&hw+5imF zy4>PftUP#&=d$%TB`7=tWus5zBsqUnKp~j}K%qZWOtjk(aCgcdD#pwyDC~cznB*_k z9))ZXC`{OE6%@wYKA`Y4C}E(GmkJ8wL&ZuNKt|D_VwH%rP|E<){7|tjw5WnYcKj+R zqykyaI1dU39V*7hCbxJ#leGJMgxunJK>&q};1JRP~3mxd}u%AF}a`cm+w$AJtu~7?QOZccMI|CFbQEy$Driv!7wnH!a6tvKoN-OS1@AwCi`SBN&qhdau_%BG zMi5+(I&i^!CAg5A3gAL-F)Co-BGpjAh10MBxKIt3^wvYHX$Ww!c>ouTAh;lP;6gO? z;6l4>tSfm2E_hjji&AlP^;aXJHD~w)-0P6ez=g;ISMYAumBgY!F85vD7h3|C`0lnxEP?OOBd=;2QEZTlO`s(sA*ya z7c*;ORW@zt1YFda&cFpF1aJ{I0?ROP!OId{NLA!P5rK=qF2F^BE$-&?BlyUQum$$I zvUSaGKoqdWn?MX(JOX20x8onjLyujGajqKG6fk{x(sgIy`Mk5 z4RwHV-cFM9N9FS;G6$f9;h#S-bBYrBpJNdXL4<4(N=Vq|uw!l?l<;OKVJLx@{pO`g z8R@)KB_b_!lzFL(phXoWuzOWe0u{(|#(9)5XqgW0B+g6yH);1mgq)XJ5>NsoI4?!& zPy+J-@8~%ea*qHd=p91^3?-x*DoSt~I+QTz91GQOaqnV?H4QN@)e0zq5uBGIbtpkJ z^z%~MWn*2*GnBx~5+#(1qpQCI5v>L&;S!`XlpwNF7c%G^3$5T(?_J1m6~w&MWIzdw z;Jg&6LkUtrKQBc^vz%cCCG`3HiRxmPC4}+3l=8KW*zY__&^R?D%kd~d>Kr_5ff7QN z8k7(>3bPnWpc;k}D4!@n%2AZSgvBzQcj6lRWl1Qx6eTD_@+e9epr%U~>JU&u_46l@ z)1--s5^9=QQNqlcSd~p1`p)?Cr#jOaN}z-=FBLZe%P^F{%W_^ysv-}HXqir6m&aJdwv>tTCQvmF4e6WECf5`THDyX5Tq|2s!cGxRfO4kLpSp z#-;dyiWK-kziOfi1xKe_J^+qK6qJMGy6+Z5A^O|{h~hHT0p|KJNzNaY&zHy?8Bs9v z2#6wNix5S^MpxoWmzdiJQG5_e7^2{1KSWW=ND)OPA}w?jMDY=5p?zFFUt&))wZrF2 znuf(^Ij<|9FNtQ&KVM?!t>P7x&$uRdg?BXZ%Ew8&??FhsG8OO&BZyZ>9bRF+60gWT z3B00rC>1cgl4_`U#c9|8uc(HLd!K+<(-3%NX}~LtAYLJLctteyctvlBSXc54ukf?RJ#w*I#HexUJctzvXkSxdJ6{++3%9KgSQiE6GMqw7iD^$bq3gr{8NI8mE zn6SVrAH#K)Ybd!CuP8(EC|(($rb`#Y{UCE>6vE6SppcL)LLmv; z071;{gF-$BB@Bh|vL6a5Wuz#i5|I`<3JUoWv@kv0dRum{Do&sRSTrT+=y8H}*;rTd3@7li#0jP1=;~iaL~G9Q*^jRyo#6zL)x?PqCujwydjE&~ zRzcu|Edowp1aShX!wFJBj}xe9mNRUE6R2*MGmLS9^0kfF?>tV>I5i~8@i;;19DHms zt`V}-;DoqQn8k1c)i9hu`NRoQj^YF+EO5eCaGm8EN-o6-%8)#Y69%a1(uF!yaKaVv zUbfy=(l z`e#z-pG8COpS8=zx{_!9nU|%1E)_>t|1Kh04gB*Dkk0(G$ZGQNrhnE7PW66>{8mBu z=dFT&W(55+sq@cLLGPcbXqGc<;-9H*mNSg~v+}i#*zdf5);KjJ%klnM>KuGq;h#g6 z8vh(O3bUAhrW)p-DWCpX%2EH!gvIKF@8LSjHI!WHpOqnb)ISeU)1?b_2>!YHJ&ed{ z(!})7HBGGkd1g(l%BBtNS0`ZGwK~(8f2M@spW{Yg8RnmPS^8(GiaaQy?_mPFSe+2Q zhq;^2&*nobTAvX7^N$b(|9m6JK>vI_A_w~Cn-Gadz)whW{;2wA#-;w5GGqUI132D4 zGuOoQA%pz02pGvf-weUf_!g3!KPvv2%#r;wGmqe(L$=62Cv0<-F}II@-T)=cKl8Gm ze=cRD{<#v77CMT5z7<+j{WIIV>Yu4VmNTx2e`XJ+f4+^h`(uRk&szuo%n15tQs&7=9r>+-@Xy->|I7&bXHw^%rGnl+ zQ&F7Xfv|~xrn*_qF!s;N*EV9m^Zr@m)Q~L4`)8?h@NI>E4q0mabKEG*V*Z(Gn17~x z`e!Le{WB95{`qIP#;GL|N-p)!%8)$jp9iSv(uF$I`Dc;Sq>1UDYnoX7^URu9l}#Hu z@y~UpGyhBp!9T~1z%tA~^Ro2MQWbenME*Ij?{WXkht>f9{7Xc^KmQhFpnv`~A_w~C z-ysr@fZvnk{89DKj7$A9Wyb#bH{f{x%v_kz4__X{@6RG&B>(&e2!_UgB+2=s;-ASJ z**`P$2>v-_i~MuKHdh&Q`}pTOpoIBnUiS0PrHs@+S0d6vNAb^pf)-W(%r>w3XDX28 zjBDbb*@Nky|4Q2Z6+-&wZG(Si1pPCq^Uusz`e*65@Xy+fset+CR73U8PQwQNSv6eT z`y0fXhVakZ1^>(l`e#z-pG8COpS8=zx{_!9nU|%1E)_>t|1%<54gB-pk9u$#( z4(xl}Kl7nw{@I_M<mj4T3I8o+ba-vK)cWjaDL-B8X= zGq#jDXCcJNG8sr`nVc;1HEd!b=Z<|H7d&_D|3K~BG0MQnGULqJ-N-_5vdj*+t9fcR zx%gy?WaF|A7w3*K3xr$=AvkyJDv$x^j)`m$ij!q+pMT(WDPufoLcpqy2A6@+_5b8A4cYIY?*4P|HyUEVqKBJBg5%!_pJ!f8@e) zB+hco(#UcmTZBfI3+$%-k9sw--4;lgG$*cSW`ch3&qFbh;r=U{AEK19$knOTEV1-)CBX@A@+X_1@hc32`8nggZ)j9|?Do zaA$Y0IR(_N4THpQ8N_mw;=CEQiQRTAzd;r%4s9U*Lee~`|WLv2mju=O4! z-8MqndS|mWxv({fvo*6cvbD$-p^>cvJF)e^GXtqtA6xq~1J%}hQnj*&&J}AGX9lV* z_d*KT^6)Hw0Ist9fe2x(2Z40%HPl+n4QoA^q`NmlT5A`x7P+t%iL(~7G_sb+7NL=~ z0^6)L7)yP(>saR>Nd6BL3IrtEyP+RSTt1RCaA#AlDNN1~|PeA5|tsY9!U4xLe zYMZUdg{?^36OdV8tKlA4WQ)+~2^iRs?-+Q#BDHGt{M#Q1v4uU=D=miow)*&vhartV z{|=Nq2T6D^LRjt*Af2s;T8=VcxkE_04@XGL-PbHfE-XjlEXOR3EGM!>Xk@v-Zt6Rz zS0CF|@5x6}wbE*v_33AiLJI9?kHHl-en$vv9SYLHY|Px{ojRn)+_2W;NV<)LS~YrpJ%x&uwp!B1 zR!1O(+Ulve%JQcngsq+q(%E*Xt(Y6OI*O!wBtqJ1mD!41*ows2idh=jN@R=B$X0>f z%vRK@k*%IV#Y$UE_OaD7kwR_tEL>r0V1%&Mu^^r8hT4j`VXNavx<@0Vt#&h8kqcXq zI9oAGBU_1V5gOSlu$$S6TA8i%9M6;Sec58ctj8k?9aFmS$`K-e(zpd z&TY9@@+3ppwYl-Sv*)9duxE!P=a0(QX=Fy@=2GU4XvXNc&zM^r_sPu7#?2*vvE^RK z7LA)HY#YLkxzuSBGUjxuh33beo`vk2wuG+vn6;p;R_ z!{V`(C&J3tX`PF?6uN;+^n--(;dJD4_HY%TLsH5^~0nxC*sJv>pxOXbVnuZva-<=xj;aZH~ zs643~l@|^DsJz|~v99FVs5~#rQTbAF+(>H?(Q5E@+6$1*M&(6TlObD<%4-FudM`wN zs~|?@F-lV$uEhwB%9FZLd8wcum8YUv&d|DE?Jmz$7kh#tj7Q~_A9|@DmDe~mB+K!m z@>1t8qFs#2hb%Rt@^Paui;c?59ifMbQa(rJr5qiVXF`n1{}2Ncy=h!$xrUNUN9C0v zd302MfSN8{s6!Z){}GC?K47cPMNX3@=BRv46YHq_%$iu0O&fX-^q9_%p{VZiTxU8P zm8XO-Djzoj%dk;-UY4WsQWbenU{oG^=h>iAV9#sc0Pf22Tl$;q+q8p{Z_|#kZ_~C- z_ISqok9?c<3(&nVPWiyGF`Q^OHnutbcL$Ey7ys_tG(NJ%+c!#)a%TBEA#aIbozoBn ztaAnkunvkJI|sooz&h9t6gcNah^XQmyLbA3mu8W*c%}!jcx=3wBeqL+Eoie7SXJbIx-JEDAE`&p1<+H4B+!qOc=DGr$sztaDZ31_EG ziC)fxBCy^|NOJzD?AAl(0Q7>bf7>U+Fst@A?F7@1Tc8(aPSMN4$%Px2W9!0MvOkfY zC~o-+^b)c~=p|vVMbY@SKIS?}#bM=LC}HS@mx^9C+x18|)O8SnE$)I0Y-|^87+eZ3 zBGN*Q58^fq-mHynrWWjW(T2&n%XeQix!K0$AD%U~Rp-;#cH#zD`=!vr^mO=w{jZ8I zr~tNArQWAQrX8xacye+34C>CEgL9U3K(-uDKHh^_YxCaANV}&aoZLKX?@8zO4?GyM zoDox-W4BsRhcB29l61Eoxru-;^p>ImhA&bL6<;_F9ln^HoNT|88gl30m#Ky;N)21R zvmn+qY-R1esNoT!AtR<*S(nt|3(>IEK8qrkWG(DCOaXesm%5T?_=1-uz96e6ImGj9DM!RL@jrwZ+6q&>bC^|I0T2T_-tT(jsVpgH1R(~g zgBVgrgBUocUQ1T zOnAn+&*D7WsfpHv-AjZ6{2}QS3iMNL`!Y??IlzF=L8dh^?ooEf)`U38)&w2ovTWOp zYHP7^YgzkU$e^<>(gebu*M2v+D-YNkhDTd})coU$#6QyC9S2`FjeqCwcngiU-$M!d zZhtHMq`up~98pm3d=PuLFZ|u*@Oi(2oGd>Nk#~d7y8vSG9C;N<&L5@ED-X(MT>1`A zZQ?ifSAgSv9&;tfM~Y9{6h4oo|3~<|S3?n4?=>Vje^gewkvYKU`5o%SH067I;q#a| z^?ChwsFVDK&kNZipO>)L;=Y2FYEvi0` z{jcitr~tNhqk2&gTuXAJf-|*uYT_MxrxrO)nwam@ zHBGGV)H7>hRW@ztIc4@}P*`sRKKGr@q`U!&V7q z_%R+YJg@pq$$l^U+B@~pecq|x3*P1UcNl|@tmvJZd*rv|o%&6P0>*eVh+&NC9{J)$ zMt^^PJ7nV#aS=(*A5|>DxPT@0+neL>ZvijH5^n{^V+rO;_Q;<(miY2>lFe*0IgL>S z^?y-T)woB#s5p3!{L*fl@_qUps5GqkPLiBID%gU|0oZ~A7S;D@atmz1%qh0$e*llv zuD}){TZAnVwz>J3+Xq{`4N4fc;H6@V_yC?#1{`ekK3$1O3$+X&?tOY;{63BGgXn$w zzoA7HTd+S?u>}>tMzqx1VT(Zr@bLcQ9{KMg?fw@+?velCfGrroJ@QE%wqQOC3F!N@ z+*H68dW%s3!xpKAiY=Um4qFU5fJZf4(t9_=nugdTe|5kXjNl&mqz+q%hJKHH?Xt11 zqbeZa7V z$Z68V#1=J8tk_~^O{~hM4ZQ|ErgJkC#dtjq;Hfj6VGBwKd*sKBz%mS5@RHa<4&afh z$b$lV-i1(q+pBpAqv>yLm-ANs(ZwI z0FlM`MP-ke%MghNz=uh4{-`1c#s%b{d&E#?j2u1)jz&m~J!o%wt>9GeQ^;=>#GC(q!8YbG#dDJ@(P}8Lgb*S^sBBx0c(>vERv3lp3HL)t2 zHnjK7*dwOSbmpBYA-ws=jleR@JM*%9^Ovf~g92~}5u~$+th)Re zK!JQGa~m%BoeYk9F20kY46M5R5=r-S2)XL=p}4F0jT^ama#LZrZ+X#X1A;or$nukkjHd5OQ1@$1CZc3-Ayxf$~CGV z#MlkScJT233R1vkhh_QKaE09=5yD#k2h!P7taTBlfHs@V+V22eI615RPEh-(h?%pA z-W4R>uOghBm9_V$u^^A!g;|$m_C1i7b&K+2^;f2Y@~F4FgJS5)g;|-AY`vOzS!`!gd z_er|fBBZSzX0{?1wj$ZM>~lq@VHODa1BBoX`y{rk5GmAFKgLy-Uyl&Bx&fr~fT6ZxZrJKZlJ1WX(pC>Q zTagP}kvLm1OCwu}Y!MpSDzKZ`idvbibe{OHc+XlU{bU28@Sb%uh`ndM8RN)nFm`+; z{&|*3mj48i#d}sbYJQ@9Fl^a*JAxw8pMNTmZ*`Hktt?lM>p^8dg;;>VpONJJQGG*W zTzEs%v)`#r{DyW5IQ|WdxhAGp9_lvq7HwWneUAZ-+G+ZlIb)}Ej>Y9}6LP)loaxJU z89SwY7+C8t8NXn9e`JpiDmzHdTxaQh=84PNy0~&>cWEa#mRs^9L!Xu1tLD$2J`lsn zo%XnB$!lnN2#5r&+3hV5)4n%?McKL&p?L2$CDvGSXc7w4U(7T8)T_Cy87*iXwBJ9)=AaP9sdUD z>?@VkxcQRPVRQZxzHFQ zk4^b}gOqag4U!4*2KhHQ=-w}Jo#h%zE`5VkhUC#V$N_4)bfFI64f5|O!uo)X?~0rz zP0TmQnkLpa$eA^lP$i5D9gp&^SI-$P!1OT8%fR|72HAQ$hd=eQ?L0poHNLUiQNsrHmAJR3g$sN5LI`hZa@b!9H2V9aI2&SW)i= zxP$j5amT+%yT3z7+;K?29gHCEAa%Hd`AXa&Hx_V*-ey$5a7U`4;tr=_1Kgn+F7Evs zVogKfjzQ|ztBF%0 z?$8QO_3lJ|s~~X4qXO<=1aSwc!yQsVk2|PnmNRUEJE(4!GmLSE^0kfF?>z3%I5i~8 z@wh|kydHO0yx==zslgp_qcDr%4ys`z*OX7(A>}CUV8Q}-{1eyMfJ;KjrMN>Gl1FjJ z05x5@P=`9)A#$2DF>yyt6D#hRSre~MT1wp_+L#+C{0$UqEt{1Mm(D0U3ndyO3l{9^aX=;Im_kc~&g zJd&J0Ry{v!ABCG>s$BohxPUJ@tGH%u9J~v*$M{SEGG6;QvS))`aP(8KIZU_>KT$eb z-sveUS;{7`U`E3o7oo6dxFeILY&G}-`^cf-_E{L&U3EZf_Vn~_Q7z1j7ZRJCjWjD> zg#qnZJ1yUKhqrfj<-o=9P(F-%Xhm0T4MD#v>z$-=EpvB|q|8Uv(1r_0a{j2y#gjQQ zqG9F{5KYJyA)173;3DRl?fgi}Tqt3PhL`;iO(`QqG?j?7&`}W0LTF)nx{(xi_bQ^H z0@xXldN)8cyz7Z*HYe@QLP$jO=zwS#K}1995DoK{h(>N@AR4`~semDxR6|8HPQwO> zMm1dATMV(LArQ@D0-|9A5e=zBG@_wLG}>ijUCA>XT~@>>OgXdW974I_wXNFAb)3VK9CMYEit^_AL@6sn8e4-v+QM)}%C z>~|i~Xq+07<#Dvazn@8D8OKiC0R+(bcy>M5_T_*#YScuZXNB z&Ww0PD>&8L5&5lxz$=Fbyut|L6;g*+q=Fu=P|+-B*aWXoUF@2RFvcs&*EV9m^LRz$ z)Q~L4;}xm%dfZ|02u#RQgID54VHU$HRKxHJRfJ5b#Re2rR?!3NK5% zB2|$GMKl5v*u@A;z$-Y1Iq`gGxiOg8V_4T`V=(tY6!1zL#PG^@ zq00-P$2c&{YFTr#Ga?JTQd!%-5|MZW>`IdJM|B2=aRGJc+J4H6F~%<7c#OeZHEa7t zK;O0fqpa3gg~Cva-AHo&sQ7F$NA}swJc7>-*&?5vu+4qO+&(`0zEHw^HZS}6>{3SR zvnvs4p`-Zh`$3DU&t^ZU`fMtY<&10Mv)QZZv-cqF?u3v&`|-hNGlD*w)cI`YD}Ai>xm~oZ9Oq_V~y-XNV*S1$ThN0!hOjV`{ZJcEXl@YUn$lTGYf>w zhY+kM#-{Uw))R|t5sEdk3z1G2y#)3|8=J2WT~AD{#@maSQpZ<9-Pa&W>%K3pa1a1O z)cv6#od*rAJ9DG%`;&C{LCCs4+3HR%>Q3V7&Mb}UF0w^vRQJGcR(ERU>aJ(PV09_l z{QyLv?)YBg;ke5310_5NAuMn(Naw*~0qohXt-lx-Y<+A@UbH@CzygmT={^i0E$|ex z0J*RL$;M^yYFlN?aGNs=gkZ;Rwmvp^8r1qCTZF;_OOZ}nKd>j-7))cE>U#2X#^%3T zwvR;5o*29EZDU*7cM8;NyuDo07U$w<-#-LVYJ*4ND$5@&;bRcO29E{ltRC76C<8V) zl%)GegtWmCW&?6z0}|H@n59uK5ZNL$>IH#qyto@NzdvZ~G64wKmrBM$M*&;OR0fB8jV956b)XKI0 z?6LQA{8jFOCm{;&D@TCX`^uy7oc#^{bG$2k6wlBse+nXt_m#6T6I$$(PX4O38s8bm zyyv!0-DAaz&%lJ}G?Q)n)C)d)dW&%kb3e-~%V=CYi1;0`TP zm%%%Ql(Iqb#2`=|*ALTvq8PEq!@l2AOKPvBuWJd3aqQ@oZ0aJe0mY7?t>SyNk zJ+c3;Et0=j)gQ7&?}-W9UfE)QRCE* zEXThmN}a^+h4`JO1{=zAg);yrN-z@*+WxW<7g5=t(8 zPgI8F(f7mwYPxix4&gmGF`ausQQftr z&UE&kNC{!rmbejEhP@~9lJAMKYl~Dx9u(NM1>1@l#0~6u?XAHD#4YEdbG!tefZsQR z`u9Y97c67DNAcYc@x}W6an3j6_s*c{d*buJ%ZY^$Z&;ZRt?@Q?bt~SLUJnd(FTqMD zA_`dPIUvAFEMpQl>2myI_6j)ZBt-PXN#qkJkq*a6WvUvS#58w5PI?|n!4vEGBsqVS zL($xkMK*Y6oZ=+xKrBGbswt>w!cfu4Naaxxb4^U&4pfD0g>{2>aXB+WMXyh%yA>7D zG!FR`)7>I}(8mN4$wiTOH{9t!Iau@*lAJ%L|L^|5cJ3oaGDn6x%sc|z3E3jJld#w7 zRCdhm19zSaB@FKHvLDEvj&beX8ZG>mNa zF1x;SLmap3yQ;XPcPg@(ioiS1q>7)%KwFkGf_R72;T=)Y;~nj@v9jbD-r;45cS_CC z*QXHyUne`izg2gBe*;MEmjy3C9>YE&w~1rq7`awn zhkc~79{W&f9I}G23HG77IAI21jD3`^U5cI1V;_xEqp}>2eWcFoEA!eROAYpk8;Ds9 z`%n$TK9o=FBjqUeVZt-ky&wGv`}E^uUP(>N!yl54c&AnD;lFWK=L1MiS6!gwP;QJwV>{9dl zf5(r#fFYL6=k4?&B@!$+-#_7^iSyPHT?A1*xmRg*nrDzMZIK99=Kh zMLrK8D96sXo3p6_1oiok1rRTRaTnrr8#93h1_Digqc$S z0j$^O)ELQMjF*IL5r9b8Yw-lZTDX|o2SD_ogaHU%Du9@eQ)A}qsWG?>OBp!vCK@lP zM5KjU1`s!1GC$tsc7C$U?aQEr-7rtahEVLDrgr%SNKezScpUYDuyW>|X!b=sS~_1s zF#YpAG06F4{`?986X!-_*yF44MCCKi!;{T`isVch9PksJNkeT~3wtjo?VgTsa$(kf z7Tw_*d0}D16!u6Wb?}7GI!Mwzbmc|{Jki^l3K%>|HB@-wG<2geJT*tq2?vfGI$=pX zHRoJX)exuV;KZz5Z-l?W~Zg3q0wag{!Pv zDvz7#Y;tn)x4RP0^);6WRFL0S@b~Nad-`I0Go-05ScOq-`MPJ_Iq1^8^N`cfiWHNg zm8r?8_PIzn#glo?!v&5EB3jYPPxj6ijih<7&DF82{M!UQGGb~n>ykROB9)(PpHGpk ztktp#uo~8n!br`M))EZ&ww82WiPS+|oR5OkU|#_ChVh*@z|`dEouxh4qZN%)BeNWj zR;13s(-$K(AxjNfi5rYr46VrBf-l!_uTwr9m6W4sg$XfIvn^iId*|R9=lVz}xpbsP z8IngwY6ht3(uFz%w6YzFaDBr@YeZI)X69&3O*3CEJ#A*qtO}=%eH?mCXL~4%(Hcx$ z)tS#mYbc?$bluxvV@%GJy?v%NyjOhE&w5RMc5!mzEJAy0YQC-EJXBqaqJ;9zk0CVz;f}0ZTc|Ne>j^KX?)Q?A<4E#v` zt3f@VSoJ#aZpFVFr{eQsynP>4hTlxAL1)@pu<9!ig{o0>B@N4D6LWeyliD-JfJu&gz^_gd2KD-ll4&f3TGDaCiX zEN8?NqDb9Fd(1aETQ=HTq>rWfQPG#6h=E1#m+{21!9{O)Vv};&s&l!Qp9m7&@viYM z6s)Zp*mhKv?eVwy*qw`J6?5mTadZyVDQGurOa+&?9#OFK8$fLCl;eS)z(2N=8#`U* zPG6760x|o!Q}X#fKsx+=piEWsKEO0X-v`V=j1KbOgi_!$|BEE&k8(_~`~aA7VeV9C zN~Hn<>5G}t3z5o0dge+#ff0e>0SWMc+b_^G9V0l*|E;-fxW^AU(MS zq-W+7()ZsQJA(8fTLkG7wxR2oYkka5fxZz+7^LTAzooLJjC84NB_b_!l%=w7g%+l# z1KsSCRnScZaM%&`J{{iD4uTxCu^Ar#qxm5N9J}*}bq-6w`%91+J&3wS| z3cBUS!V^YsGb&)9JJnD@x6{yp?m=5)tA>kv?|@j-5KCoGq=q^L$_Or%C3T=%H1tbl zwado3l4nDLyex+VOU2RE--d|RoZ+A2z7y#TSc|L_aShrUTPrx#`)}m83Sz13vspo% z0%Zi3%91)@Efw@jWvOVEGqk=EfOVgZ&8RMpfj}59l~umB5&NA7)*7dVWH}yKOPvEK zEr4~%QUk2xMqw5M)>OlW0V$urTFOyi&4dN8emkylE|G+iOM$gAB##2?0cyH*p$;*y zwmx8xQ{*&hVuI?LCRWHfvnEz$(}wn-8j!QjbOx#^AuN@R8-ZmQoE-;5fyb4>P>^z65XL1{S<|p9F7S1spWIwz^KJgCeaJ*Bds=+%&jrKXx4nNlRdtQyHq~on&2)z zoQS(VLfX9qA#vA90e3NixQo=`F6Jw7m)yv}U3yzn0mEIXhKjqKh7E9+YPh)fQHV7S zfxDg)a2F$pyGR}G5)D1>(iT_1b00ic!;>`1)%A8-six(3jc0Ak58-$?%GDinLdFi;I2=B z48&cZL}WkQMLuyC>2TatrmDeROw#~&{f|><6XLGVLM$F-pCifnql&v2m*Os|ScJQ% zUyQpx4UWfMlru5?;0NEOwflP#u^fkoNr$WL7tNp6Rch4dKNfd=9?HSS|4WkdM`g=f zGDpT;%sc|_3fUsum9Py0#oRu)>oZWoa2GH8;jU6fin}TiX`!Rwt}j3f9IS;kuf$z) zBLjEoZA}FXccmIC?s6J7z+I~0;@(#v)-(j}dS1X?j3DkJb+}73^telJh*($h40rLe z#9gK0xRJhyh}N9p<6U1xI>TKetBF%4?$QcQ^}dGuRzcvd=Lg)y2;weMhr6VL9(Peu zoK%Id3GSl0SFiy6u;I6MD3b^YE5W`*Tf&KQvnAex^|5xBWyG=%) zPWvWg;|cLClAJ%P(`k$ga7I5xyb`<^yj%s22QSQ(Y@9pu>9p%o@RG^Kxgx0lTKX)f zYW%`bRQwP4!tmSB2Nu4XB<)E!F=VCd%4j7H}tln0tPoy4Ha%U4ISJV^o5~n zxTNDt$_mST!h*kE}0d6pYtL#Y~+>i?TRrXXg%NbVSMxQSXsV)xrLm02J zSH89p`<;gy8mES2IUa6Eo!3`}c|w*NxDhuBvl!f<8U{BgpKwFUQMkc`fE(D|bV2W0 zTxYq4l1t%+G9-_}jR9)9bfFFbZrl$=SRXLBA#$2DG2uo{6D!=9SreKBG}rZc!f3E>OFxDi-}!3|y#ZpasgQWben;0we1vowJlfjzIi2e|l_z~qvc}tcN|Ex7!NU>1o#2fhAPRWn z#~{EPC|vLC!Ox8-1<$JuBsqVS z;D>%!zAt2)f}eStymZsu+3&jVQcf9%N3O;8RN z{Rv6VAJZRsNIYXk<^Zq**wW|o0CJ19M9iFm9jrMY_IW_a7J;3Fy;i|a%2X;1#KM&X}`8?oeXi)__?2}cnLj`aM zEA>7d^|iG`TplkA_=$RQ@UcRCIUd7&AaHs7Eu`HaBAmqX_*3a=m*DY$vkbxF@_14Q zc9;*6bS;tGSO7bEn^6G+JE?{WcASO|>~QJ2EZ`^VaSQlW!&dKBh&2scS^EXl@cHt2 zAtSI#y-VuAj%e7@1^i2}KHa)(tSh^*fgN6!V5d}kDLz)4v)xsAP_8)|t6$CGt$AX( zV81mdU9A682*Rna6h~*c>V@t{XJ>GhcV3PLm>RUUNGm+m`x)hElVGgng{*K-R&z6g zV=bf({78jutYz-56E8;l;Zr-D4NE!FVR29`u047Qy0+$evs>p@wRo}19C0(1pMu?*eCPOiq`mYKiBQW zC*OuB==Vzy8w05B=lTmo7Jj+1pX;v?iAVBpNOJxtom{z4gmK{wU-xsR%=iuec5u9t zW3Gwm^=dC{qHzgBDfC!hTS7EK~qzuu^a5 zSOzUpWv}L-{U1rYKS#(x`_uRoTMf90&k&Ymg(+3QqO@g8WuNIFc8!g1ShR5p*P^&XGt3{h&P+&2om; zS85ljQeB)3iZC9uSH89p`F2a8neOlNP=ln@5(<3?Z^_7=^{a?oC?A`c1-+J}950=v3T&)vMA zD<4|XK0Wl=JBZKzE27}D{|PeCXa60M1AX?t5s62@Mv|OAsy>@>sn4d&*k}I(9PhK4 zt7Z>&5wOX8_MIpUwHRB@TJT53XOlUy&t~Qke0Ind`Rs&k?lb20@!9`^66Ujc+0SQ} zGE$#iiAW0_#b?igwW~gx{h;czsQ}I|rQQvEHhVRF_H4Fi_iy+`pN-u%3!lvh`fO6? zvzf2-+0vQev$bne0rT0ZhU&AOh7EkSYPh&JCuj(tjjcWlpUnvRY*Od5MMLkiwado3 zl4m}fm!;1x6-QUk5YcMjv*#k6`D~HZ~I1*Gs$)!G98InhR_5d|qx=@GUv#TTDBBx0c(`VN-vHI+pHL)t2 zHnbo4hR?1uo%w7^2tGS*1eRewo0p}}ma52u0zNy8dZRw&4cE;5A_0EW%)u0H$#Ze*%yIy*2qrG*l9=i;>M>dvKRLQKy4>>%D_&{o0D|s zBjirZJ=~q#iJe?b3zBSHc1^JtH?v?T<_AFt_Tqjp$ifY~%w4|w{CTV9&g*;{OZIM< zn!_Ooku5^86Z2}M(`kgjo@hS=T&y9OwKc~e2JXd8y~f*XG%df|{wl^KfcRm9#fZ{< zs9U(o@=1iK{S-)NAF2HY4#4oU>YH%EoydOzYPDx>)P5;RcL_q){>4^%a#4Gdjmx$u zYR@bXatnl@_P2rzsJ+M*p{V^&kxpwL*c0uafxA-ce&*Qx^TIyluX$s+4>`3OZ{Nn0 zTx+52e;;Z8Wr))DUxBME-$KGI5yArZ0_p547T5=d6ASE%3tC`5P_qDKzye#5beAKf z1?Ss-UugWW$l-+@{mU^_IV+3pXf6Sgj@_^J8xLAh}~SINcQ>d>%reJ6?5A+fVtAX zlb;xS(M!fw*uI%8a=d+`M9aJu`?a?14v5lzeIHz9`A!H?ubn|U4;|X7%#Bvvg`~S9 zLbmEltyRfItCF}@WtK**DzZgr)T)7PtvaM%Q!Ce|zF)TyrTuy(u5kE`gsTw30=t29 z_8)2i%76v#N7B77LR#QuW&v_x0TO2cW@%&rku5?a3j}u4eoeh9Hh|Z~b8UA-sSWnP zRhI85;a&(~gS|mI2Z#+0!c8If_QAN|z5NJKySFI=Hh2I@_x=cJgR{&AlM1lG0}-Y7 zz=Lsx!$lCH_74H+JWOhTD6&cIABPLp{xDFhJ#(Y>Ye>2eLde>mZM7#CwI|uQ?8imz znFT`d6#{Gj1dsu>7ug~dwSOYgY3&1hqWvUrhdtY=)p+~KOsVVW!gFmOM4|3@4(*34 z94>+ob>APPgV}G}fn>mQjhXRWJAkCSFG4=o&SBLdk6b+0NZfOcS(4|PNRjORxfZyC zpKC0#@?2BQ@-Recn;wX(EI$Y#>UA(k=Rm1f9a>>-wCN*Ax(`RlHhsCZDY70wMoh`K)pq;t^F{>6YVaKt#~PnQ$+5+OA(13+A&Mfdm?h;J@!c?Ie(M` zPvwdT#)TCT6rbfRPzRoh6%mgI#}7O)*TnQ^{E7(C<}_&2IR-`VG=0sSu~Rz7;&QhM zx!!fo^kvYmeHd8lFt4^?`YWu9|CWUeE8UM;xth8SmCM@8>IvCDt+O1npyl}yTg;z6 z5bH~)4?)nH-NxB03)z&q_6Xc*bdFCNK@%c-ElB4XReNYiyN+hz1KWS7dOZr z%KOzUZg?65;Zz!mYck%!AuX-rRPX7`s&&MW)+<=YQ)N8^BRHf*>V~wWj>US0EZ36N zyzDZ5C@N?bFJllr!w^m}3>A{s3`51XWELBSlAA!6F;G5-p`;ughGIg$j6qU!_=!st zB%KaD^;1ojF(eUT*h!Z$h+0_2!0uRG#vry98%N6+0=rnoFjlN%Sch(Q0(!uYK>fbP zT*t68{L$X{cWVoI6GiJ74#u8wZSh%0AqqFZvq0dpxLwCB@KKso{hN^0Ax)3 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ôQ(0?ZAvd% z)?T!1yoeX@#d}JU9D~V=R9~FTw4|FZnWoC*Te>NOsj2EAXQrabOvU@b0kxm9F!P zTGx3Va`PUygd7Bht`*sNzWG6H$mJJ(sBK z&Ybf}fx9A2vBC{Gjm{quNEwNgVWdN3g89Q1Np&!IdxI8{Q|)}GBMPV5`7TSqbf=36 zAG2^xn3*1<5jo$jN924r1>N}`MpX*yk;X4*;}?wa3#^gjN{l>%$@of*oQmg9m`dh% zg8B6te!Y_Vil)9|sIM^flbQg7iMrD1N!c``n`TT?&M5PzbW;XXQ>E!sfgzt4_kSpV zFkV?;Pv~PZT5ZN~VBu&{Y+;-(qVNB;F!p*v4Mtk?TDH^=7aZo zpY38O@CpZM(q*7B>T=#C!orZnL6n#+XGIBr#uNOpubd zA!=z-S~;lIjued zJVTkk8N$8EG;W39x0uGdLxU$J^S48|x0%MB5d03)xa-ik%eWgMTwd(XZ(6ug_j+3p zz#ZpZ=J|VN>v&UneyeO9Zz|8GATvA zm}HDY4#r^zgD!$5F5)66U&X%IWoUPC%VSQ!)wInW%hA<~Wm=lbd4q;A*FsB*wduzR1b?Vo@S7yvU79A$Wz2#b zQ38lxylm?rIk&mY@Rbmp(m?#;l@R<2^SEl^T3DuamFrf^)~#~gwX${B*oW6pN27Mb z2{Riu%#ggO)nR5MYSBs1>r5Ec1g0>fdPmtJaq)(OdegzU$r!gBjCBWtTs?8|He=}C zhQ`l^Gk%oJG=4V3_+d{m<7b1_dxsfmqQ;T99qaQBbH3|vrp|82W{gSX5*If^nD;`M z_qe}Xj0yQrieJ3XSVm{}8RLP2@zBBGv~Y3T!Fc3gJYsnsGltO_I4yXLC46SVBg}=p zAxvdQi5X=~(vqXZ1v5^p-WJ-}Q`&(aUpSyS((v3gD&_(yZh?0y7up#~Pe~S3!w%Vy zaXZL`7m^mPgxfUyNA!GolaZ5*d?<*_b%#j93x`oh{=Vt>`=<4GqJvuP@0+9$g-%j* zGGSCJJ>i5YcT$#EK;q#nv2aXhpoL@1vD+chV@Pnz9@g%0#?T!LdHJT}6Oo@8>TG@OjMWyo=Xktp587y2X;!~57E zr!8E`vlX=779*c#BK;N_oEXkKrV9fWu8DBnfLsV}X|rt^vu)8xTNvV&pk~ab$PRJk zu&HEn!@ zYm7WiTks3#Eiy0H7tS;3jD;rh+tO6q+%&^76&T43K2DwsMcI&XIe9LWLhuqZS`_d{ zlF=h>%t>=$$s#GUZ3jD~q~cAxg=I!IQZ2LdTn-RW3b@R5D}g#iYb9vJHDSax64V%x z*E2%xL>9)zcC{}E#+IB?41!RI>3l@q*bV zUZ5l#Us!Wc));o(fnApzA8C${497>@;)ZU)VB)CEa3iRVZJ`bJ52KB3w(3nLqm5;( zN~%#ExQSpFU$|vr+%0aiF4`!iQT~oE+!k=voOhTP?kG{!F4_WR-1x#>jfSsEb)AyL~ys68TCG9 z8^|R}2SS+b+!M`!Y0}gnQR)a`CPSD>;3x8YWw3OJYjrF^iG)9_Ta4&g1N&;}Fa^_6 zr>)~bUg{(hl)4-$U95s*7E{CvcxqmeJH|-e5{bLf&1`xsT(MEY9(ULrX9_1QrlCwp zJ6`Gy!D%@fFP(H~oMhN32X>0v_l4T`G45#xmy>a+KZMK4xHMqlY$)AxzQd_D3@x$YD;FmG{I3<<}PNM=7DmpN}23a!KAWJ2tvS_F*a*HLW#S)_|8LaYbUV4+jQIaZJfSe>lD+q!2Iu&n;Lz=H7( zW$BJYV)&iIt*wdDU4BnNeofmmksZ`$ABbmDOehLe=nYUPgH-8&;O87XX1GL6IT!a2oE{} za1d0Vr&x~{10?d-Tj(tbp91IWZTuDmpm7x*RehEL`c)V_Uil>e5cwq!I#;68bD{Zx z_SU_L>_`m#|3OPEk*C=4Lp}lZZ}AD9UB#<9@CeDsvq{G7=;**Btg&e9d499N5BQxF z&squ!`a=s<|W09f`fzx)+bj!n*1ZeKy&0Fm`ZHJoo2#f(B4nGKQ+Nkr*DX3D17 zmlLJ?>gnKf_UT}LS{u*L0x2X231#J`oB}NF_@Bw%4FnyceFs(6*)h7_1iiMaH#t zEgbup5({u?F9eB$Cp^%$L3{%QRWEs9OmE}RtQBKRj2Vj(^?`beUvj5ECMtYF71Vo- zHW(KQkrxB!3A_x6}D*n_I;kHm7$GZG8A50=kd@PYgzWWGL(zDc847%8d zkv%R&6PGXvq70V(DE^P3zg&%nt+nkwsxw>`C)5x%Jg#3xI8R(^izV7Qhi6vtBsE@a z1Rnb!G`;Bvg985Ep_^ss>M&l`vd8mU;)pkw4k(dGw#-jn#9LnwD>Nwg6GSO^242hn zc2RnCn@-61F@Av(-n`K2Ax8k;-2aogiir)nz;?qMA=+@VuXWEsBvvx&UtnB=Yjy-N zKDq}3dQViPr9IEJ?je;t6N%B2oCwH-j#AXy19tKJN1pAXw?-tg@9{I@msEcXH0y#( z7lw7bD|B+aD`2|CYGMR6F+#Aolms~cQNn+Y2PMw&k_*+#!f*@TKg0u9#SJwmNMD6v za{o(*(1=V=Z{?zHUOJ2#M6GDda2wU)j6RRtoc&RvfK|i$9O!=Z66GAqK@spTz=L0;)PX45K_v1YHvmJ0D%2g^wlGms) zOtZc%x>+rXr+!84J`Bl@wid(yv~b!{xAU~~iZ152Fe2mGzj*;J*MeV4CHbS^o&OX` z%+9F{{MV3)vJuUhFd%;XfmRU3%mx!BI5LmaSPa`hLIi|T4%0M>V;zWjCj0nm1o~e? zn}__#2lq_PT(_ua?|6b4Y|${oou$2OJkBcZqPzm^r7iW;VL ztBL+f>x+p?-AanYrDI6gK>HM$Ugz;1&%O?u@F^`cvVZFfxdzuH!=e>z2E=HR?1&TC zCyFyn9pf|FfAecRQ^U_Qm{h=CH0r2nD`u@^KAwnBZox=6-1=PN(sA@Pk=ypAq2#~| z43MV$HyEGM9yFv!7_X6Ngz*VG*${__UL(a&i#=2F48=a(x?k9U`_EqKchvW7<>{<% zu;$V$tuO!?udKsh<_vHCWuB#|Uz&CO>}=}?qY1p6jh4sswv{661sa%wb1>?_%NPbR z7?5vxfuR}D(naI_D4zKXN^$YbU(tLVzkf-;iOi2_iSt(^4j{;ae~tWstn%Co-d+p< zatrtj1`uA_^CpCY|G;xFn)08;PyvkP{XE$-^L2urji;a>0p z5}lwqknSL+Zsyb{@;<#*0KKFiboqIW6Qj5Bamt7#zD7=v`7w7f^J6jtc&i>~zod%q z>!RxVn{Z<8R7^`s+18p#(fO(Rd7r0Ec##t9M?>l@V@y4{&in*E4W%pWpNv?WBVijm zHpJdW*|?2PXl+&Khi+QK<`2KA5_022dL;b1NfKUjB)ldhyr$L8vM5C_l2}I33^yHJ zbI7a-GHX~Z$7i}*_aWZ!KoiDfuW`$N2@_gl)67c+0SlsSEeD4HeaSh%Hn$VyS1)v0O2v5FZR>ABwR zA%kQOEx`0p5f#ie-FV@)+iyn1TMpT)4*3$THpTC8kB9L44dD)Smj@Y>FW>1({7>-K&D2HIZgu?WfCOb@Ls&(j*L!>Rt^ib~RquDhqvZwzWN)K>pTU z?57>0#-$abr-zQ79tu4@#MX+DB}%)AL;P+<6)Ita{!xmFQs8FDyY0xkE#%!k#({z) z^96UUN*6bT!TMoSC|QkJHZ#A6Qex0s8HGjr4+O_gKVC0c4)~bO*{dW$@H*WTb6%ir z5*8WR884&s)pNnq<|J9zoWnT5h%%Y)^a%MM3!F$dN7%iNuzQ8Ddoe9T7){g5H`7RW zl;+Y>qp)(5gv3=-q0y)iGU^YIv>702qfru&2Z(k77Ptumx04%jh9Bj}XUE$}jh z<_x2xWAUW0cv57{0^fmv7*6jrwLv^n;4JS5-3%{1RMVkH zurA)q=UexoPV*OzIb@CrGRJ&6#@d>q1 zw1(&vr$L2uvC)-?R5n06@tJ7TKPAnDiI$gm8?eKpefa3}S!W9ODM?WLUGw_=VxJ&`}OE*-qtW_nM;Xw4t4FRl5n3eUNUt5uK%i)keOmS0i|QG@l4`7u#Hk-cLLjC0qU z_?5TD)3{)~>5glPuc{`RYgR z2Yg-W99oGsYjUJKlF)c;9ucQF<>iznod+g@;aWZd=_pphH%-Hyj~v2qAB1 zA#bygw~g^{kJDN{%OhKbzmR|8DqS5f^BHyCbR@kgB)uup)*U}>VKn+_>yB+rq3f0* zx^BS~A=U-a_0aIWZ5sKssL>tK=#D|T>(IR`Q0^KOXFLCb*v`MOVNjf{`U_&K{=%j~ zx#uvtCm7j8z2%^636w3z;j|qa;B7Q~jKKFDY3>VY?i-W`4$1?8^1z@xbWp_R{Dp^V za#hVg8{(eZjzrr+=xrnPBM0S?Kza0Yt$S^fNEw*><_Hw$?5=KzGyDS+@N5EbKG z(}~aamxT_f6u?&r@H+Q;={mbz=7t@kBxhG)R_rRw4)I)rZtcRdnO`oCqn>%-MD26U z4m(O77D^sAD5DO_s6ZK24#pi;x@k_QCme|;ghUgy{4It!7=-q<-RAS5;f3 z9kJ6wY+Tvno1bQ<9h7N-GHpS1@b#3TB4i4oi8A`&JAV|oSa3}%vN?GXDkoc=1 z$h8n;tt_qUWuZ69LT{?TmQj}KsaIetdncmtn_G_G+!B6sONTW2E&zYyfLDCE9<`Fr zV76xkY~V_IcHI$BEO%ztO&@MMD7Qr)%=%~6S^vz6_0OzX|I9k;pINc~nKkR5*$s!0 zSpUqL_0O!c{+Si)pV>_n#o4;b-J4@!XSp>imRmUYrwKiN6vsy+{AoguQL?inn-xp4 z*)4-|-%*cPC(W95(yX&inicD$S+h=>b=FCv4k}ezmofZWQRjcRoT8cijORb5ThHU-uAGAIKS> zYx9Gpe@B++jP@QIy>&SpEcrVtGFUP|2FspsAc6n~%0k=ALOaSr!xuoPV`XM}fF4$1 zuc*RauZk*9xuh>QK@dy&xlU^W%$?^t{g5$756sX^u9w4JubIj9s<2nAZ`ccoY4#lE zx*P$!gn(V;)b;fDtA|99>N@5~b4*BcOb`CKZU?1XpmeLi$M#jOs%_k0p?e&OdW1yu zi5#<5>-7U)uMB*>repq6kzD1tAamTHoNzdu5GW@MO0R>`D^M(>lMc#BfpXGNIpv_7 z5-6t(N}q$$Cs6tf%4r8htoY_m8Xj}j4Kdu>3%=y4+~G;4P_)Q5e{ zbh6ite!cOz0m~W@79X5(q9f{uLy%EFUb0x)$*gF8S;j&VF)+F0uK+nX!O3NKUmypO zCc-fg&~!-9X{T%FL-m=mbi#Kw5zk^-+)`QSq6!&{%4U6b-u9G1w%WvUZprqQhRu@j zpd}q)`#8e(nFwp$bJ=ORELtwBNW%S4Mr}@CE;|xk77|?+k)+R$Bz-cH*p96@WL5;3 z6*KOxI4D;H$`v*4`m_zLbK~1NVr=!f;|_B8EKY16*!6?IFHqVTP9U3&WTU9MMl2IMUK z=ETBp&Mf@qoQ2<L&gR}YKM&7R*fa?EWT!+ zc!#X2YVTU(Qf$5}yydQlX9Ipb8<6pAKuv|ob*x^=hv-&{23$*@+i;{6tM0iCl@F>Z zun`x|<~ALPHiiB+-D@6m_f*s#P*HophEBu<5t#?vs10rVQJV`UY7e+kdmujNFUx71 z-VfD32tghyk%p8=Lqa4vS5X?@<#I(Dk|J@zh!mKh4aMiS{j|aT)~;0^2p$5h09$E8{P9BF-%K*OprN-VB(t>K}S!dRs+>o({FNkT8>7kzD zUf*|cE`;&No+rnir^5D?U4?CYnauElB8vOW`rbZ z4hU)d8WO)<-SWh;;e%AleLd?{1oGV%cPfd?wCd|x#z&&$brZ9< zVy`2O*c>RD&4Hq`IZzav14XkrP;@p2iehu1Xf_9meGVhBIZ!ls?$EOL`3~sh(?)faKI~b4Gz$oDx9r0E1cc3y&=!NB|KNJ zxmH!8TUNof!GUPqkw&b!iu9=(+7@5t?6_>Q&a#S@TF9lQ2?Vj-7| zkV_^^I4iWGSfLf~sMyB+P$5D0#b1gwB(~jk6fRa`MY$4N@@IofayDo?w&9QwOQfP- zL*r{x1rJ^@!Im}(s&g|zT6QN-%X03|1vB>#T<2eo7xj8)Njb}sU_j@F!IH}WeG+wY zb{2>wOY!2C?J4!=z8~G0r8b>q>z8G8C-#Bp&L6~daDqEjOW{}zaUPU~s=K0dYO0!F zwDY0{j9#-{QrxzRp+K@N0*Ssii9hR@pszgggfYL!F0X`SJvB+tM~#lw__33HKG!~&Uvzv>eX-Kk2_MAQEyWrW z(!}RI>vf8W)}CeLmxV_$L)Yun2R$8}fY*V(V6N%nTbgB|QC=J7D0R^UoVu-k%|kL) zV;DN~`#EywIN~*FsWxiJqt9}ZX1&s?gnKH55I zx`J!ELVW%JWrln~^c|&UjL-RYt9^{m`F7u5=i61*qEB$Dky$v?`g73)8`6q~ca=Tm z4jU_zZgJ$dk(szL-{HvBA>`_Cw6xNU+&-Ulq)7^Cl3GhEY{3`w`(km*Gu82rV=O$XNxRG>4OvLhB&@;XKipy>#K7Ud%$S4LG!GO*U zgN(}{BN=ePFmP9*`AmHNl%Hi;L3-d=Mt)f_(`7IWWLbVyh=UW%vf(T2dE|;dN1>-( z4WPb1oP_}$P(FB_^rA#+%B$Aqhpe=eUxtJa(mOe=EdEfJuUf;$arIF5HzErX7^DKuH^vX$NImpiKLI zDFV%Ez%QvReQq`Em%&%gsjo(h9i{wg*uz%i^WnQh@Zsip^@&fW0{ zA24E~jtXWxuDb3H27!4nAj@UNTPX{@%HETQwa9AgO_@yiJ4NKntHOr*t()|PUFALN zJmt#cDN%nHyJ1tVYmRSS6LMWEr=`YjLCmi?(yR$-*34kI?x0*3DAx_j4F~0hK)GR1 zZaOI99)(Zy6M4i)vnMQO%p%0_L3!qIt1FG=JMrx#KXpBgDO9Q0_V? zcLmB_gR3L%=k7Pkv4@$^uddt?(pah)r*N5t48~~RgYhm36azkn5gmB-5s3ZL~T8sTcDQHWuXIQp~GdN;Tt$f z-P2`pGb%>6DKFS)#ysd^!I}V>>|(+9$%_R&585!9%sh#5vFNlZiZ(^<>K986N=cxU z)DY%QD*H93ql=D2i$bDB5xzG3@Uc3Y4n`#hE)@6mzGGW}qUubvaY8P^~>rt`bY?dyF&C-Pq zHQ{4LDxHUv*^tn)kaVOLJEjXs5ivLYh>5R_lXA6?D$Z9EyAe~hg+q?ihlH*Vso1fp zJ<<+Wd@^0chfOzj@E6q85CxuG$8NfVW)q)*x2!P%!sp(_U_smXLXRIeSO~2sD~Ml~ zF@XdM#0~z+y@L~s8=K)V2?0)&g`QN?jzdZ>TTL0Mr>v@Iq@EI1I;BVImKmvAW{C7T zZTdu;KILoN1Es{~^y0K5(P<$Oy)xY_iMIR^vL#1|?O4A$O|)1@|`GJRrlqA2VC6a?9E;OCKc>0)D(jZtLI# z{dgX<<>@ z;1S#4k+H#}&}h@n;%l}sqs>_(Er>M|&i$dk?T@x?Ioh_>Opsj1>a|fDvqv7~NOM<3^Fma|@j|qmczz6T$e7=7#M=76%L7Q2>F zm@iRdvdX3-(xwneT<<98?-1Z_!a`JJ6=+jk_FlN>khv$ws5hVItM#lQx^^zFENlsh z?26>RBeb~QvEbLx;8WKv==L&Pd&Q5v%FE|E*c75pupvF!K%@#f*c9BW5GXFV;RleC ze~YAIt9`<<_RAvtun2DWDMSO|M*&3m0e!K8*L35h^3b-jxb0=3Ni|u;$4_@LSuGt> z)2id7V-_MGniw=>0F(|(Cnz2E{iLMctCMGunzTSE`I{>Ur=?CIjb8(oEOqhyo=P@+ zBUYtBe~LgL>wWlytaHC7R$-z}X68ViU5l5F@#I%8)mRfCZL>-P)<@>P%2Kyumu{hn zZapzyGgESNoxRlKwCNFT{2J2UaW~zgpC@!6EA=`gdIgDIl~&20tpXY~gD#zP#5gI$ zIB6txHkV3bbE$Mnr8d`G4X~BCsj%d1Tb0DNRjJPieA?;LY0;<8qBazsW5;f#fL!lUmnRIE`ok^EQEj4O0p(e4r7`-8XO@|=U0aoW7R+$if z;NETsTXb5KoKoQCC1Cr@QR>Qai2miW3RzKusJAJD$hneN5?As{SJVjURT;gj8FSOp zRjW`6?N^0wU)6KdE;Bdna>VOwig>Gzc;bR(N#E>M=rrPWn&EoQX>(0<>6%(qvx3!} zLifU-&o*SZt~nB|35nMHO_D;V-6Sb=%IU1_*mZ}@bwS3jA-BK5Be>9|{m4$w5&+p8 zTj+A~Z=p-%UsW(OL-%fyLRY+WQ!(J(iA14OFrafY_3U&RpiiQX3WkCE%zB|SUb_CW;vZ#zRnY;!NZSpVi;FA|C3YaK|{--~+qru+Bl1mAgoE0KLKwy!PX9el;3 zSx)AA7>1>X_*OgKsUK}gkPG4Jl#WP31U-6Hqu7 zPyFOd(XK!J;{X0X{D(jLyXevXvHL53`spuxDzoAp^1Qtn&s*|5Z(j=zD1Z5l&mQ&m zdR_$oegE;||IzZ>@6NsQonQIg|1#gbe(-L~e@guzd2rxs|Kj&={a)&o;^n{imj^!Z ze|`U7uEvl4+4KMNCx7&R4}9d^Py9jq|9SN4pZ)NKmDXSS=*D;d)A;)@{_JbNbN7Gw z)Yi#gE`9#B*8Bh4KQH`~1E2Y`_y7L)^W%T8{{Q~kslWMy{-OW1{ojB7zifZ=pME^? zYk&HmQy>5P{~Ueht^WuyAYg;_X)6^!f_BHq`hH?Fo{OL zg>o9d<7lqxrcoNj-yrH|y#1d8eL5wEE&tp*@KtU`0+7gWgV?)XyAS*dBfbrKQ#cb9 zUu7y|AWU+$e;z;ILgN(w`K0!K79vII@MXxG90vXn{-ZvAf~6Q`fvM}i;{B4hXJ6t? z{Cy37Z|&PhQ8}u9S^#Oo-vRu!SXxSItvoAi{%8laZ0h-q5qkx~s zc_JH$!~oy_ES*1tLAJ7YUp#X;s+wf3?!~~pVoH~(jzM<`ew_|C>2Qk<+o;WY8aLYp zP*#zRfb0VU_XrD>@oc*RwG%4%CbH-0&`XC?bm*hQ2|667!)ZDU(V?FX!*u9j!NDQB zX3uU=#r>9j9rXKvSZ&bRmf`n0O1aB)h|+;L=elsn-lVewhEA@}oMmsBrbH-5^5)J{ zgD=tHO*)|SiQF+d6zQ;EH^`-*BgKBLC6>sw85rb>=SaBRVLF^NY;wo#*=ci@y^dB) zAV#S%}=CEiMBk-$Qt}>99tJhjbvZ^Ly#QvTqV>i;5nd-J-*NIzU;8+#@9Uw6#BPY8blDXB;@7}^-*Bs2EPGAj;CeCjc?VkmOKwqj`* z*~}3b!p#1JnlYxH#!wJR6xI`9lKHz9+8b@7$MJ;EDumReAf}(7nV|rZS(h{( zIy4@JXefxGfxcuYxMVgA4Te}6P!m3vtMrABwi+X7tKfsPzKOC?+lpy8oEc*LQDbVY ziFW9bW+IGRhAl;&%st6FX?YWkq{EvbXmMeJ1~+^j3C|gE*?XwXcA9S93w6_BbWXFtoq=}#gpES~B~i|sqL_2_o4o7$&!-&Ki|XLnEw_`-k zF6O#rS9D2t1z-0dMF>NSdJ>}tV(=lGF|zc8BTWh)BMEJ@M@$mWzgEUx;O&WJ!}a)zvhFNz%cW5VVTc5KY!HS*f(<|x9t*i)DI$TDhy#v@K77c5tCA6YfZ0gV z6+}tRp(5vzU{@^ny^=fC<@~fj9c7T`@bpZt6xcBLLd-qe8D{FIWg@(6sJMz^~ogd&0D*hPGFB+El zMafc^G)qlHuvAPOrQ{3Xn?LVRDHtgnyX4KZEx*Fp%EI&-1}$?YBy#~`vd86%QhEZj z$L0MqMN_LZzhW^mj%2E2`WKo%;IZ z{>7z@kOX#;M19?`;?S9rV8bzoDj5kBIVpi(PZDgB1bpZ)Vr+&a*tASHr49(JB-nH$ zP$eUQA}1yA>q&wwlHibGz7=A=C0TA+mRk->RWd9U5y>)4c8%C}+KxHixW=@J8VR^f znA=9cZKsZMd)@|!MLUIPP%?nW}fi7tYG&#{DW|u!sJUgTqc{anEB$Zz? zs`jWcsIw%l>teBhW5E zX(I-mV!jXZKWvG`NRP~j7vBY%n3e94>_Ca}!k^X#+3&@8?_dTWJ4fAF-gU^106F^} z8G`m$vM-}}N!bN%lYN<}V3#5LQ9}C|9e$`mg<(SNFe{HjCv6WD(gb8J5KCO*D2!T+ zt``3kt`X0^PRKn5h#Lr~e1cR+jd6cMeuxB9+v65(2s?)dV|$a4mJZs<{~8_MYE62) zMHx*-B7C9&Ee6m+Xl-;j@QV64yh^dOek)?b1ij~Nj`+-n{Az44I8_Ie*r8AHnAJNA zvY|s4+S{q|YSqT{CJ>5 zOM{XJ{@0OB*P_;Pw?DY1V)Q7L3deTn^+OUXJi{*0$;V@S?0%N~2Ocxu!YxS=iDQ0C zQ-&>D5^2=DpdEzH<1cJ8nQ_-wjZ5-GBh`nP-#xA~F8A z52GcP7$Ch2aE}IBF$$>aIf@%}Spt{&a8Zy#NPP4eoW(~`R>fFbvXzm!cs?;5i>jy- zKmV)_JMr^Gdzxua(`bunQU-I>ViH|dd7k;4H+;^=_A8-S9_GQ?^qZh%t7B!iE+ybJ?O__R%lD=(9|oKhQeS6jZu0S#(|`ibeW!tp%vri~*mwA#AX)5$ z`?U^T`1ekYlT{lh9nMORcew+1Ie1Y_!}rXuC&X}LKz!x}J>a+)dr3IDg2ZQH9$)^2 zWk0b8eyONmS3ft^&n>3H>cNFDpNfUR<;h04^YmuyMLh&ni3W=b%3PKbGQgKm;Y$fa z6q2|C=TIPkpg=`mI#N4B5bAjtX0};p+p1IBhz@EvWIehpk864qFUVuFUhG53s6X){3MI>QUP%6?3BV1;|L^7F~PX7YhuSfc4W z_{zRjs8L5UoHLv_Wb534u5?Kb@D`A^B-WiqGgCn`YRs!ZC$^tlpSy$p0Lp#9Je#Ff1@dViv5eFu+I98GCTDu^^Gd)nHDUyE3ugo}Bt8?&-MK@qtLX)Z zzBHFRABn=LRKx57iy?i{y$3BN#56JaMW{w;PyCS+dD&vMuwWDpsdD%2%Mu%sp z3oc(r;9dyaD@i*7_g3fXG<3SdWSz!NcY59Kgamf^IwJKsRD;Qwz9flU?BF<@`*z^$ zl6O=!096fCRMmjPGt_WYHgsx-5E~xL+K_{TDLeSE#0u%m6@Y#71Rsy{@iZTY_}I_K zVLtW*lLUVkiuoZD`ng!=Hp+R4TtU`^O$2UPD(A@D5RJ%8ptf)3ei;Q!zlI?nB#jx$874$q79p^v?`j|O1+ z*k}9LXZpw}wvSvA@=)24hX7g!j0;SkBq6b`3a2aM(GKovzF8Q}DhA=)N= ziR@`R!OU^VUrupZWf!@e5@0O@xASFCMIi$N92qnxHL30wlj?r9A3SUzk?n`}2dwrD zz-YhUYMq<>wNYI^#N4uvZM^}A0ZBAWUUCMctPs6so=&eBVq(z= zHJ*;EpVR7RNd5GypJDaWW9G#<5BCb2NU~SXi`^PF3kD4mZLWa%J?IR79$>3|i53#F*qDq#l{CkZlZ z7Lr9pGbM)^9)O$Sfm1!KSYuFwXG4pHXy;XBv!|fN5@zIj$BYayT!($GIMp=qnOzht zO;yxRxNx5WPdf2-3Fb@N@nU*6QCu|TvNXRrC2{qN{Xe$gh#tpjr?P(&rrZ#u6 zXO&%h-tJjt*Y@#lZH%tnaHB-_22|}M-w?<*Xqydpq{ld;-dB!#AJ@$y9nY!_X56OE zbq`eC1Aj|vLv3ko*e$IM>_gK=aU#3LO}12%tq;=190ed;&5Ol461mHX9Q-M2x4K^U zx4K@ZmbuH^GIyB^^biajEqVa^Ww>7+?N{*Eg?r+0M?7P!C=A{M%XO(j7ixe_1^f_N zR&9-Dc^^455VhXly8$acB(^W1Os zz`%Y28|>#vAjaviR}*p_e#;KtMl~4LgK{10LBQ0TxVes)+V;&IW*HAFfe%NM&u}ke zFSD`qSm=nMujuSa{HflaRQM-fNIu8-9UX-642_wNmy*xw;gG`~N{nl)#d61ei=kRv zT1n(i`&g$1*69zEP|6H^Ok}Uy5_BX6+;zWM_Bv}tSu3WyrSuq!t4mOLl7h$*30A^{ z>eK{j2JU$NMUqY+L3wI$<X+X5aI0&G(O2FKCzbof`nR4e}Fc-h58HOc=8#-%a zMI>^Iy8SW>w5SAH^ocDCV#_)P6CR!Fq)ewaDJwW_B<2fv5{D%<>DPy-RH@4* zRqCQj-uabKYYWk>GmK$dtD?V=sK~(yxvO%*%pgCiuWWu4rtz&AqpU!b|%tS~5&gxnoMeW116RN#-0_{t0U^*Ti?GPWar zaIaO%P!2V?wL^r$1Vc6@zP?zFx;9*OIhsZt?ue94gWJaWK=V*nP>+9FNQYFYE2!nJ zI9QH$H=J%bX4wcz8q$H=nEh&#k6R9*O%U3YU3MhcbR-CM0S&ne4uOy)E)j=5y}i~q zRB$tuUhGM?T}t7oXB+C-mbH%f+m857!$)X%MK%m64`f++ zk0n+}c_gE+p-^>Y3GntX+>j|7OVRn=Vm{rVaMX~5qi@;ySV09ckuX|N$N(>P!dra2 z&qrRE0er-srZex`RAF3Z-F5z)pQf7WHr~Y+3qRWZIrhW_2 zYiFw0D|R~7DP3XNl&*?uCn2v2q+LXKvyB zm@Od-(5rQj)Ype`rq=cf#jNdBNlZpqdhI;x&Sb=?iO-nbV?}|wVOq)E<8ZCNyTf&+ zk=)&JD#Q$eC2*!a4AGla`F1vJJMFsWHxju`e{(|@^^8r`0mmBMLi~+$-9&DjTPn8e zs-55U4X5j&TG4f?(_P z+iepZY1Hc40F165SY1Cbx@HusYc6SOj})~lmYM+wTM)js#bd`7vO?%#jc7W0V2Hq= zhAsv}%z*TGKze+qO75ZU&O>yE+zoGK1eAWX`&xiEfx6iNH%;Z3I?(tzZ_xK>QoF-ak zkDCaajEPf|F&WC4RyD_T!3JFm(Zf=eZBA81-x{nA*V!1waDD7^#i^o+r!R6S7@E4M zy{nVztaowA486zJS0A&lVs8ysLJNc=SGWxDCFG(bp@PI`UZlIB&e20icu@tOVBugk zKpzNyp7ytBK7*Hg&<0l`dzSOp0L>mQGX(Gd(DyLsOLo^WU!t*9=w>%7bn|YNqM~-I zEJZv)!W-9#>LSU(FyF721<;|v8{xXku zwY{CcthdVYOAK9NN%Kp=?efC0ME(Z;=kBNt-2!ju=5MGLH)!V&?=|T_Z#(cV6THcU z3EolFcThkr74X9~X;qW{rR4t5<~J5ks{7N19%T%)1X;hUTcWF5K6qMyr+HtyZ~#_f z(GM`w0v<=94b1#iwZECas${tu+{(`1?SO>~$wZzv?DKaO-d(1ZRJ4-Z8?~>WzbS6k z#S2-qM-=v2k0|VIoo%_YE~T z_5H|~5=m-_&hryfe25VUV?6skezFXtaQiZL{39)Gc)aX6?1s|~Hi_&X(kag9G@)+l zMg>R|DMcn*ZyX%pb}KA=F?`hK9F@c_iPS@s7n(5ULre$=5Zqh#LKzdwa- z5S{z^KG%=wo5(p%Qxwd;%;td&c&Cyq^idSd69jm!gWh(>q4yv^*r6Wucn`A{V8-~8 z57`xu@$pq5J|#cPZL_cDw&}?hb{{RfawPD1kA^9?9VT}u;L>Rlj|2`YuZem9O(5X& zb72q_vYu^$koW;T8d?0LkE;1g&JrlZlC!=`2@EH#--}M|ipjdVB^ApN9=^aSu zhkDtbM=#sM(?MKR3~&U-2guR=223Wu)k=c=_#mkU*UR6-OX?y~PhA>};c*?jzHhJR z9Yg{HJv7JVTY%weKaLSOyyJ;;W_}w$ylaU}gda%Fql2U(su*#&90OV&-Uvv)EG+|| z{U755^p!wEl*jp8bu>SO7M2yPlHby4)^Jwx`~yq%Gxm|}&(IA-J?)$HxJZ$%f5X`UpxEpTGhF`Pk)@<6ELe!~25rWez z*Xj9J7A^Zd{6KB=1MV;LPi8erqL5Q_xzNc-=7$`Ue4CI8EkJyl9i&Z2=bCE&<+YeXPFgcDqlY~fcs0!nv^(EB3y9>%Q=bco=9H&5d5H9EYt z=dc%RJ**yF)xRxN(ME>@bZDnTCmoK_p_>jT=rHgs+L7PAvi;s8Vn$%wq;-`@qxNVx@F&mJ<^EH|iyu(&` z_N<+eR`}S<$5VXl?N+Tz8+35BRucIloS2 z+-N|@C?8phTo=yiz5x=Rdz(983F1<}rG3j%V%!|}BzKhmP8=HK-#YZ-Cj@6fA^Yi-9N-8O@sM!v?-hD!YhTOHeRXnh;tS(rpPxRH znn;g~kM#{tj(=w=5{-ED8dcBxbi{l4$QM4}_eOefY-n(DsPikS$tmD{=G(6x=>mn= zfnS{*Je&H?_~bWFj7&|84$gc5Mejoq?*qR+a%OUTYW$sa^0o2FiSfxnqVIY8BVOy5 zQ=_TDsg&paV#ND}*TyGiCP&^KPAC7T|Cp@MDD&S%yv%!k8a$GQ&Z#TCeNgPeQ<2>-PB}qbmZ;H!O58;$uEwL&LrO%pG=;cN+rKD zk{(W`hf~QAoyl`!>5;RkBgrp}r;{UN>D1UzYKYstn;J_^4vr>=Qr}LEj!&EgJEC>O z^PZ1*`;H#@d4$Oy@x?r%#XJ%a)AL3n-n+qeuY>*M*x=}qH_p91 zb!Kve4K(GJzBmD)NU>8N?>RX#l|DIsMisw`F7~F=6ThCCnt~>#K07rtcIICUef{g7 z^1Qbr-dj)0?AKE1iYz|ud1oTtZ$2#x>Q6-;|IG8=jd*X@gU1(A)0O#jd)_+{Z}92( ze0~~^M8hU%C2N(Vp4T7ozFI#vu#YAFNzZ#L;+?J^ak7l14u=|yc>VRIPByU|VCx#> z?@NshA`}EiMnzAmP5uhhtNIYe!&f8Tmv^b55Qm`mSiQh$ek0<2rCxL$ox^8_Bi@-^ z($-nw)vlx6U+?<#*Sn4$sYU%Y1izgb?PQ4>f?qXe)r?X@z^H{q&_4e<;>|p`b`JK}hFvU`z7z2#8{JLvGG{;|c|LVtL&;_5 z1p3r{t-!OYA0vsDOKmmTHN>}~MX`kZR>T{9DvR#O&9NntY3BE^n^&sB)9!o)_Q^zE z#X9p-w9Y({niw6Qp(HF9F*H!pGJL*qW_%)5ZL*a4H<0O4BW2<#XbnQa5z4Lbgd@~L zO%-*5G56aM@3$JQk&65g&oh4jn|!a)5|nY2ssj|eyqQA8`|U={RaJh@a4=9@$5JobWAkAEJq^U5JtT>1Aqa#&FGi4;EPX zN40{Tih&K2sLa2ET+0oW>$Tz3 znQwl68Z)WX*qNH-L*8kIe3Plcbn1(fZ%z#1w-)`8r#B>7J9aG}@G2UWvQ^`q?X^MJ za*q7pPMnO z=UcoB>`-nthdm@;s!> zH(tseLi4K>nj7z7Y))5Ul|78&bK_?r6*6hnb@ZzgtecbM1LLu}SQNn*;ZGME=udL_ zRB>S1H8qXHWk~dUO_IpX{bdHDm5dy|sgms!Cah%STn*V45y4(svHYUNibEN>nNC%4 zxnd=vY}n|voK%pREmU(Sp7%F8T1lbYsY6xK$kl%rgK)k{gRnwKwe~v-58vUM-xFgQD6`J6F7e4`Y{1G7@O)uN=AT2xd&c;5*!eQp2e9 zdm7~Dco~JNI&LeR8Xp}wGxOQ0sgZZb=#~kQ-#*^6!@dGVrDlnuf@MXYqs4I@r(0FE zQf;4=f@B?UQK%{hx#F*mPws9@kG4GPc#lmjf>ksc1@R)LCb{}dO?H&2q9A31MW zu?do>LG`(r*M}<0Lz$#m@~DwjT^`!YtYhx4YAFn_>cUV2tmEc%Rbk4Fv8pNPC~a*1 zBSnDff>E@t<3*1h)mB{^3fT3V(N+;gCez?%!9Ru!YPi`s8l1U)%hX+}L9WutE9!V@ zV3!h<8&*~<Y{2sM0qAB3WrDNo6D6`G#kPpfFYf-hFINo|H29dCHfBLT~dW@iUY! z3HfdPZn@m0+v?QhOF^z$$9sHsDMr9m`C6{CMmS1N`;R`V9g+B=ZF6Sm(uqk`t{mjT zbyv-a)H@?%BmB|@e;N1j9_6^^j<$-^y@sr#Du}ehlCB}^s0yO&w2rFdWimCeD$DV? zb0eea*T*Vah*nSkJ=O=8>zM^Ah~qlVXVd=fMfICDXw19sMA0uB@d+HMVLPI#%Jf8P z*Rt^ftBx0Bs|rWco83!BORc)6v(;uZ!S;woMI}0@9 zyJ~e`=T%nS=ZICTR(&x;0lbdatanzF3Rl&IqEP-vh*^KogqX$d6trG-@#=gzp^DDr zd>{~9#YS%3SEFUUNy-vfjW%EBQR9d-I>&ry>quxvB9Yvy0wa0XvNVW+73cIc=IeNSrAii6McHXmPb=Ar zaG*kS9Ec)eMeR`Vse8_orVXV4b zw8CA%SpB!n8LMT@SY1Mj|8>8PUrBRvW)p}ja-CcE>E3SS39ohQzTV!A7!)RqF378! zmIOSo^2P2wqKyfS67;)IQ)sN=0n z<)rxXPBLIBRKFMNoGK>*jiHJvz{sxOqdsNXBeGQFPHWl*8-RLWb*hIL(oh4)k>UHK z9j1sI=c~W!vX)D~Vf#z=#u+VhET^W+yp-C%m{-$v=jzOz84E_^3?ejmdg6sVH=WWJN1i7mBrX8 zGS+duS6K-4&aR3!A)l?|mPTbc+@~Nb%EQ}y^_w|VmZxggP0~pNf|VoBuaAE_WwbR_Q4*Sj)o~xgGL%bm^Uj6cNrdTG z{fCXCnX0*-)~I#dV=Ai&Y?Xcy7% zRf@um)=-&Af7PoGuTn^^-wgz1twu6c7lLAPW0xOtRaizx{^}5tG;~fU1#vQj6@j*} z8au_6GL+2`pPQ3|Q{`tBCjQ`dq%=q4R+)GhSOX zbXYq5FTZa{)BC0=Km|~%d%6>)X`Uzd3wdj%d9lcKJxXT23gCbB-?|jj9_a%9s>br? ziB}Uf;W(kA37Y6MO%r}5_cZ}$tp5&n1xx4!jL)1xVe`xoUb^^_(Ed+j_vWNaR$jDN ziTJgk_4_==4l$Yq3Iys;QnqgF_FPCO?gZFZ22FOGtBgR<<~M!T|Kezcfg;S|M2k<7 zo7VA>u-$ltYZ6Bsez|9Jl~N{z(HlLRsFX5OZ07>VG5Biz?)%!oLT3G8N6Ik@sr4Hv zeS_}`7d0=x#Kihs^{<51F>C}yaQ(5mD6}lC-&C`@Bo#MRV3GPwHG?wju)~DaXZ>C~ z8{|#SSFzWKRQ21wFUPs+vYRfZ)bADVE_<1@l=|5T?GU89BkFgLQ)S*|27;9VA+dfj zXtyF*?udZ(d&P2P?t%FV#@STF8>`QnwlY^|Ee|iR-%_qRPbbOHBKn<(H&{z&rz(F0 zy5cB?CEtyBZ`XrO)o6i0{mqE?PQCb4jScXVfr$4TPtQvR0%x7=d4mzJzrG9{x5MyG zMZAIfb8wst#{WjdOFb!z7PTMY{VO`i{Z?EZN+|3Rk%%``mmXG)fpo{i zM8x}MT{wvqWaX|QjMSRFDyowix>J(MjB!D&ZeBw=ts3uXzjY|$eZ3BPl@UKM`+%E_ zM!a|H%*2glc7g@NHG-KF#Vj+Z?`hJR7<5v7GGQVvHo!oEj~^jY)hYPOZkU*5wM8?t zI{CKb<3=l=8$97m#QV)UyPY%Hpz%|ubRv5sB9z}9ctV|$a)^~1n|zjy@e31`EFZe$ zFdXsD)Mlw)#n<1@O{T;c`gji;XLPh;bcMNUpBz?VRFMm&PqmNPa$KrSWZ(|9=iYKm z%;R|#yMrlH?Gd#cCvBao83`^|`+%y%tSTp(F})q}-g;WElcP!Z(0Vo;`|AWKf~>&fvm-*f_6ATp=To;Sbl_GIeYsj9KA=DoJ6vglb|Eixby)_MiEstDwq zweW{?)wLt=BWEvUmJ_2j0j9wcqqum3zdfTG z1bw$)2Vv;8&{{Y8tIA>wQG*P~UiA+?HSkC9tNEtFsyg7jR!jJ!yP9gfgQW%ucJKj& zznU+%?t*&_7CKeJe}nGKamHs1hpOZBR`%R+Q?p`7D7yK5hm$ophE!%w+hvW6AyqiT*XlUG zl_sw=x3MaJ74G)!i1)1q#1WUb>u>a=Os#jz>@sXBwpFwZC#&NGb~oB~wlnB9+lF@C zq)9t}vBswRYwNg<3wJ%Fb+_m6wc0N?s@JGK@u#ut%ur>IikrGvoYbBrtM(8%Z!0iX1Ek{Q;3=lJ6&UU? zy&a2qBeg9}mGf5MMz*WiIc%&y>BOfByQ&!&1Ej7jrJt(UW4?OrhlD3j#ASOaSq5@G z#zpP-zg4lHWEDunwcqEoOFrZ=R(FV|Pa3*+)Lkg7z&DHXILLc z>a6{ao-%rqY>ZD>CWs8RKM=D66KABtpKHHEYzGE1DAbj!b6R|`of=G^8Lp^B+8wL?5<=yUxi_9yW{XHwdxEUYmWD@VX4n<0ea&5&nYb0b zGEYRw+V@v0^K{04)oCg1h1I^WsLr`MLqwh0r}~u`%GBd@+D6tV+GE%aJ2%`}ez0Wi zdknkc=L9;-59+La=Diz!ff@c2rNQ0sk+~MZtTCP8ux52e8&CCfdg+61K=T>GD{7z7 z?M8d#^gbInL;aG0?3V~)J~y~T{Q{-r=8R-#1BUjQYM+JgR*?=X+F5$?q;qm)%)JkN zhZzGb_v9165Hoi}pkms=RIK)$UZczq(`vI6xJvE&W)(TH)2HPX=!#v$Osw{MwsvAX zes1zis`{Pl@YC9NV|U^!?jEk5V=+yu{pOmTxcj}X&K%?B$zxr>t7KFNBqXqT@_9rR zHtyK5(GC&3_9uBNs8se!rauIM+V==|!6Q6gY_~8lzZLODpKRe-MT?rH?=zMoMn>I6 zq*P?MlTJ9Nod4uYms)!2vVE%gptGoV-g;Xx;K7HUeDpc|NTC(kAay+X49a2S&Z8?b zgrnBJ^J~V2!*GX8jEqsQo;fr2iao=CsFTI2W#A{fv8Aj6U5iz}#RQ}7$!DZx%vPNn zmhMl!x8!hhvp{vO7~)SpCv~{OfYn)HwO*$V@{E3WA%&jNfAUo8bWp4#DvpPvh%HYZ zsl)7CQ&wh+2=nCGH_TRrnd;_5tf~F}(6VEa73=o2I%`Co+Fy!QmNn&xsxv}*dgsa4 z8A7u%-8-&pCl?4ewO?&0(<{k|Cl=;Tpn8pU$-s@Lwl5fUwLe|ILtg@OXt;b`BA3$} zC+peXz~Aa_898@;vYUx^P?u{N8c?=B^pf`{->a(N)PBtH`M?dHd_%DUpKze?`N1b@ zzuvWj9(7*xnZO(B-l=d#v;3ay{U|$hO5`%15xk-8B1cd074hv=E( z^YkdklkZYhV^+l>UxlyKetCZf+nJnY^+=Cu)V{uOU#hw5HyGFMAwfp2zIJ?1aqXGD zI>U;SC^$&%yCgwgJ1@{`e`Q#ZN7cnGJg)W?Svd|>r$w|Pt3AQHY-E^FY74zCxb_5J znME15^GDE=4Ab4RvRn}E-immqYum4?%q2V@`i+S9m3mQkW{yuZ0jex{D1y-hsGO}| z8$Ww?aBOJm2%U_N9r^6J^l)k{J#uD{-a>KY*T;uaqfo%(r6C3X@5 zzj5x&nbg$OJLg6}Eb9_)Or*|?yfbpScZQq!gN~g}M=i*XBFUz+3-<(QK znwpQvnhv*BXHsIi%J{;O^v^kKJs5r!D(I_ANzJ{ zGM$>7I`T$(5^nPOv2$lFurnFJ?@WFLsPMMW9PK*7|8*u`J2y%%pZm;M>RftqaI`ad z>fGC-BWM1b)J)&_H&bJu`DEAN(6M(?pMLw*!A}pSQbX)<8Fsqk5$}_#b4P5NKhifo z4mXB0<74lR&h*Vpq=ro8=gy6c4y7hrk15`sr~A4eCZ9kzX1*|ZHq|mR^b1OT4mdU? zF1oxvq+P&4**k{j+MrIw^Ft$36QhGnzM~B7=qQF*`rJ@Tj}WKvv!mz;*J@vIYFjnw zvScUp&6;H^CsR|rDPNW+se=PR`R=6b%WGbUc+s)cbei_XJ@2`Q_sqBHvkjj23|puy z=X7dpa4h}0@n5Gu&rGEU)2YK{lypEEfbZlTNlpD?8N`TetoE{iobPkJU#gO&_~MfdSPk;;Shd*a^&oY8LUo+T8GBZ4vvgX9V*lM z|8MU*z?w?B{%;aGA_8JTkSj&8g&R7kAXN}43n-!>h9p2VB$$M%2t>u+QEVvK5OGCx zEo(s$`&w~rsDQn)VlS)f|IAGS0Wa(B|9$s)zvunFXh`PH%$YN1&Ybd_d!ZB9V|D^E zG!djoB$SFL7ne7PB|#+4pyZGvN)bxM8I+5qsPhK%PN}rXY-u88M|Lt_v0EhyOVes% z>ZqdxrFk-6{Or)Jj5WS;1Z?MWTbZ~)Z>yJky22KhOAZS z1SQ+bZ7ZQv2NC(p$|RJ_0Xs%WSuv3>q}~I~mai+tK4VBGrckOKpNj%kDYX%lvJ;R4 zrtAoHq+g<(8Al`p8!M&U%gGSbaQMk=K|3yA3MQ@}#T2@vsDxtya<ri48nzgw?@p>ELZS>kREUBhWOLb4_IC#-Cy!jJC54#uRVl)X{55J}DFR+^3TlSm zN}8Z(W~wr1+aA=00^F{cQW4S4l_WzPMrpLgyaYH~l1HSZ-=$PZrTs!OqBfAqz<}Dq zu?2j#gx3z^@F&VBwHz!9+L-NG9WoiFG>x40_6-OExor~)fon)fw@t~2JY=Gdh~?eF z6cIo9#0Di#5`HH2xbf^Hz956rTOn60pqxI34GRj^nz9>djwx%%fR%FgWFLt(4O2sA z7sJ}o6?tAGe>NGG=6g0mfPVMy_ZoqX;7KUQQ`rNeG$GhLO5J29Cxh)$1Qe9glCMz! zm$FhmrFK##k~g>;fR07b5l8{n1QG>+Vs!m^f@Foq9~qIz!vUxuT@hO#8Gy4nq@)Mn z@&p4e2)Vdwl7)j0NZOfTu^E8=XnSTt(l3QPup@ar z3}FDMs81FFEmRDPVS~TJr)gM<5a%QT)+ELGLL49}JdVwom>`A}hZ|#rVdu}hs6@Ht zVt5O_$^Ml(9>!xsrau5r0uLY-@Z(yL2SxJ#ec&O^*_rLgadcw2+B@(F7gx(~2ZO8& zVtM755O&gmDRX$ESE#2C`aiGltZD0pZ_2xQ?#9aPmD|^y(0^4FsdawCri>rGhd$%JioW<)YVf<_uOU23Lae*vOakAb^rZVw^3?ySKrl&+0{_@p0(?WSp59OpV!==?g|0lZgA_g^$VLW0yEmdFglZm^4nO4`gk%RVxE741 zkmInS>3}~Q+*83wDlj9(GO+c~f%#`0RYLSdP!fYk zc-S!bM5Sab5K0-?d+6eTsHH*|0np)+E7L+C92&;~2@Z7RLpSAE`k)oPTX$?bRs_&b zhEY~PQ@nLk`HK6g%%Bp{L#ol(aGFv_eR=d6*DL`21Zi zkgjpaeSs`hJd^}jDG;&)213<3e1qDUZ!fM6C!84mL2A~CpSTq?r(Nf0=t^6(76 zXK`LSWP^|db9hWW9Tcd@n@b=h5eYMrL@DSS7w3w25*(r(AjA;>Tu#O%=v;~~WLvd&{&@R|-zX&?-ZgWD9Tk z+JJ;OY=|v!zO;`73INsNVqQECjsrRJ1rkBnCx&bCuvfyQc_`vZ90ZIM0Awso5eS$# z9xC8L(uNB}2}s^45=0Cd3qkilLJGk%Y0k}SE{|MQRTV8a^da>Xtv7U!=ZllbV4XH1 zN|b_g5=9~y1dR+@05AZYngS>!g((PIwCP*Qq#Cy@F_Y#Qk;s>T+O`aUE7CoPs$ti_ zyg)sY_!1O(1MNPOiL5@jgaI}K`Rs4Xi0cN zT*6KT9+1*Qt9X!(C=JOLq5g8Vn6xec#jxS{4p&CNIGJ?O@@T=J=8C#j8AUU7E>FS- zxDHNPndm$c4~K(ha>XF42v<32!v`wI7_3SNrQGg_Ibfe;kZLq0%}U7_f&_4cF}Nv2 z3ah{uf~DYdL81ZjZ%9i~x&tfE#Nh!>U))T3xk(2BXlKmqivW z1xXayH2^BP$^;9CHEc0mi6B-~14%yOpDoO2m2-iKP-rxq=OC?4KtcyiAd@aGKc3ts zQq@e3Npk{mH$xj>OaUt)(>69}lqjB*PXa#`)>Ks-u&Y?mkCZ{H3S8b6m>Z!uAX6S> zi(#lxg`Tvx5yg-w=uA zYc97^q-Q|FVkf{k8-{p&7Km5Dh5s+-Q@PEf4eZvZsPx_|OpSsV#;+ER7``0|u zH+(Q@24TnN?0%N|}&4@{`OlY&Mp#5!&r)tLW z03X}}7_<2MRu7qBHaJVAL2N^oNn7(TvWC3HKf)X$%%mAbfDX#l30XceVx*0d-v^+$ zo(8VCxvp74aIC_Q&j77rOXb0{0>>kbXp3W!qCi8A>@jIJV6~A?5;M`=Vm5to1Y2=& zIKylvE9QX>Ws(34W=HUx4kx0Y(aeEIt-K zgE2q&j$Vh1heK(53&}+07Qe+g4Qn|D8enTB*^1OA|@^PA!=zw_KE-$ z1tA9jM#85O<&#s|q1Fj_r2$V;XeCFNzNPdW2B*QSmH!+7Hv}1AKD6a<9bqX+B*uZz z2?<;e0!j!~6hTP@;ENQL*b~bHXaeCmH~be8&|CDh?w`fC>(yA=oYvzM-G!%J=yZlSmPg z7s784eL3=i!xh9M;uL|5T&RhM86ln!AdXNa#1)zosz=bC0P2&QWu)W_+3pcomu49z zlQYbKapag0S|ci1B8iKE9{Q=eq6;v4pru?t1Q&mc?o!ias>p*$xjxJ`>%;uc`k--` zn5GIpqe!_(KzisP0KHhy!XDms80kK+1(-9mM|iRvN<@g4Kt&qg%HrS8Hxt$j=_7h2 zViv&92;e(`b6W6m*exp?NFU5tWbz zQt84!JO4aVpX4wi7j^@}O8;Cp|NZ=+b+9A#s5KvLwW+NxxnNqbcAl^UkOfErOCh%m zRQ(9hLHQev_J6Pcl@eHFfOUY0uWBB0YTLS~twq1`XfKkvOBO_N?E zvy6vJadaAurBCQ-XphhHr|}qSbecLwL~H2u*PyAm(sH|IlWzi6=NgunL^bQ_m=*%pV>E#kK^{<4C z@u-MFr_t#~@PI09rnsxvIBMugICDZJL{`BpO&3_2%F-pYH5en+G>qsY!&ydz0V-%2 z=|r+6iGWtXqadtKL`QT{(?~On$A!m=xU8OpDY~L#WZZ(eLtX-~9f_#3Y>3{do?&FJ zS`Vi=;eZGu3?$Us6SpH+ETU&uJv)N1CmdKV_O1@jW1z@_qP?O>NdFQ36#O&V;h&Jv zEK~&rYsZk$^kJ=OI&>M0hMnJgT352`eaJ2y3lrw}v>ilLN!by*0~NtD7A@lMPSz+~ z7C2+4Cb#Du2U^I9-1EtL9lY-9T*>e_Fubb3ot(E<4e>bfK*B{u=yJ$V{!|Hj~ z>&$oCdq-R_J8xF?c+;+`=@xscd@E0l)mk7plscdLA+G0JM=jevmlB>m=%s%vb$`%p zriaU6-4v%gp>t|xADbb~8f)NaR-2?A%-rg|U*p-O0q1PD4nAo=({^dWEcT9RB^zfa zJAUO|;~ZROeD2Gh$ij|SIm7M8PBxQVP%EH=qS7|VXj4HVnS?p4wVAbAH=;|kHjmJv zX=s72tE+1=7=#&W&{3_6TIamE9}+ANJ=w;!zHC`CXwSKk=dFJsLQ%DWS^zO@qc7pj z>Pz%N%A;$fa_kZUa51S`5_on9ZtWN0VSJ8=)rIJcnyMS=+1V2W%dWqJql>+Zqnsm4 z#8FOXeM1HiN--x)$mbU=(7(P&@Q=#X8t-pmXcorcZrzB91ct#Z{>{hApLIaxi{ zyt2D%$z^O0E%fRCmN%_VBxZ zy+2~}ph+7?Yz-?5kz^5u`p*X4eAsWooT6Qq>krsUI3qRK^9x?MZu!kT^7A0wo~JK% zdAc-q_#~s41$ArtO@B1vWmV6S!-nSG*m!o#q>5m=*TgOATy}xvx4wEYgGYYgj;$~A zYA~JWY~a*k+zaEIwX>JL(H@ndX_1@_);(y0eaUZ_DlLx(VGj_IDak*Xe9xU_jYX{TGp4 z8`bNcMx9-m;$e2}b?v$#jRjK|hm^;^nsxiE?$igNIX^B=5d6{i+?m_IhFq9%?ex)~ zqx&z8pLl|Q_^NPEobEww&#mJ%X7YYI>e}t3@3wA3dfl1)$F2{Cn?hsm{+RjZ0WbZ@ zzU%A-_orUBANb|U_Nk6fX2Xf|{95y3lX(rg<0i0VW4%hk4&?o`UpCQpVV&u~t{*R{ zxr84hWSW`a2IAx{K!@FNQ4Q&<8Euq>$es0%m{zdnXiGAT`nH(P& zsiNmn;qfhLMza$DSKv&z*b$Ddge!6aPGpfqpyGerNy+Hnx&u0L2Xt@;u;z*FjJ)~pW1B999iEpz^Wc$QQtQ}mHha$Yv2n3p;X2&u!jy_7 z+f6M?O5>li%_rQk2`G%6b=NxPa<4%5uw%O;J**f_momrNUa`EF9Hak(U)rt@*qwvh z=(5hbHyz(=md`cEta4tCq;GsX9QRkb*?LHx+7{;=Q5<1dbyM&6t@|9MaV zQBt;`{`uH-<)3fwh`(D^kUP2YYGdG|fW9S0Hk(Vb5^^5SiA#^&X*>N|5RHJcj!!4>(EmNP%d<* zoj2x5=pu8kuZGCv5&F%xU!7op3uxu$!~@;vtVP~GcUBL+^R(n7>yqVc2VxBBVXg+A zhzKbPDhkXCP^hB_4Vb{WDZFY9Cgng`?9qH`GDV-ZQyD%b@ z2v(NC*?Ik$v$N$WJ>8$smlC<_5c9ZNZUK>-PvkCc77~*|ttBlLL-S z+^mg3CB1LLtGrDs8X_`Gn3u0h6D(HiE;qQtS+de=c~(tEhecJqSmprt57pvJNz?wQ z^mwduX3*hbr5j%JZ*mS>IBqJ4;Z0wZHP?ZXw$*y?Q=R@59 zH=Ms>XVmOOp{Qi9w0fwz#%5YS8+Vz9QBb_@kzGM=?<~wV6&YvwmZUxy+K;!PIwmYG zuiA{`RFGF+`})JHF2$?*+&Q#omXab3;cR@mt|tg!}3p`=RVWTdCDJD z{+Vc08?m6iJ|&5>c*v!~QNbaHb0RH@(+%u;Wxnv#sqpxH%h`=FRmHPbM@||Q?C*QT z>-6f>u{t^a6Tf7vt2&gFG~slZ#7HkQ^c+iOoIuEoIgtJlxy%03j;q}aP$elX%H2+Y z0aE0I+6-2Q<{%!DRLJvMQdV77M~FXL%Ep9kOGh=9g&IDi*Wr@!gYjj7d(HATs3#xi z?lL$$scxLf*6n@S<3z^$2``oI9as*8T~X&8!*8+AVw0S1?d@sRZ3l^&nv8~}4E*#= zzngGg!JQ+une39^XUz!yajJjajc%`e2X)yK*x5^KUq#B)m#M=M7?ufm5=?;*@+yP*2-f~X=_qT5-dlkUzq&3%&50T!R=8gv+8xM zbJU+OV(_gZgTYDMPiIZibv|veoO3nFbo#N;rdw8|mx{J8nvkp8Wlf%ykw)^Pz3$n| zEpnnx#Ri`I((qG5L@n)c^w)!yrm}8d?+nHLS{+E8wnqoF-yK&DZR-x?wPGQdWJ0edoO6yCoIjwG7|<$9fJQHXirC`lHtT z?yI{L%M4!WQg94OcIV+0)b!!AV{%wG-iuaVV=f6n_a9iQ)uy>dLzIihZS+RKy zw{7A&SPv~PEy%e-M3r5&x?vi2@Aja{k;PN(n<7v8XUz@Vehp99(r><7;B14=H%Cca z4v0m=OrLu;ZBYL-?XzWaQT4bb^ETn8FFgtkm$;>D{Jqam!~SMQbX?UK<{t_FzZ9!h7lae2jmo4o&Hr zXF1mY$%sVV-H+x?JkxNJA>A_OV9n$X+BF{Q@;*D z(RzId?l|YGt#_rvtHQitVOTACr|O~aoj#}%#5Uw#3*@G8bSd4QUvfz zGdA+qqEgsnu){!E5&S}s@C%EKNXIB6I*3RSxH?=}hKSU?J$HieotB8S9olVi7b7$S zYqbu9j&cZwR+}vhfFTXbn#kb34=&3%A}spt*!k^MFFm)v8LmFg;xqqT58(-K^@WnJ znNucQiSijR%z1w8ZT4!d6N!E2g{e)=*BQo;sGpirGd(HXeoajLf_$~^`-_J?z2H=Q zEq-oTGI7H%3+^*)8aHTI*%euOV}_OFx)tF6lhr zkJu{~dR?s-Y`h;a+~}3B!ST`egqe=D`3a5p);Hd4Xt4SzX#4g`<0lcxSKimVMMsIM z?G6UVZ+&yc>i&bJxbrxoa2osL|!x+3J8A-YGw(4I_Pa)04EO zqqGFweCwun^|kgD+5tjZ-s>}7?smy>giK=+7{4eb7@?ipj|3y=ZG`nd2aJ##KLXGP zuz&VWj*iIqIm(L;sQ4c?&EK_DW_kzH4Cc7u&p#U#y#18T&z~rb=yYY14knxNd*hVE zzyYzxs~@nBrtWo*??1N5IJ}P<%iObv$uhI^+C~eeu!*P&!bkt*_*v5iZC52kWN+C9U%iV@-ww+?ci3vY-RSXtuSO5cvzy)%Znaz-n;TJaVd;n^RmV2R zTw)suZBCec%*#1Y&;IOJ)yK>#!BA|{YfgC}cXnu8Ma-8p^C3-v?^SCY5KX(2alZgi5b^r4NX17B1mbe9)hL1`=_ZmrD^)Nq~cfJjrwKbXqo(vjC%3G%zW4E9tyC>d1dH&s*OiUC=_*hvCzR<|nw0vPy--CO;sNG3kXE(gh zmyzYRf9!d%!2Up7?5dlQL!Z1nzcPN&yss1DvTq+BuDiJRUDxN`hfm@ZPVSXdy=KGu z!Jo3TmQPrezB#Gp&YF*ApIxr!zd5lxLGg$ush`T_U(`!|QD za-yvDGnuZDsp}_g)tI9{yUTudiNP5W{OIa4x7>*0!lPv%kwZR~sxO_lr7g*1k{C4FW+a4!-l}GK~e#>WYLFlAw#WlxA z-s9IrR$Zzij(j=$Fz9!^!!aRG3VU{Uu|0TUv^w*JUQwuH?F;QbrdM`Nb?m9Nzt-vI z<=BOF(pdq9#WH#gK(m9$9Q zhDE=tKDX&&MG@d+xj7rB{)c^*$|;q)I!0H=?uD+|M_6>zSLT9*3!M4djcLB%qPRe$ zfq{|Z4Ul-M(O9++?&&B9AYfGoe$eT9Tj>CXYLed#%H<7y_{{}1a8l_`N5|6500zor z=|wt(7V5^(EXIqK-)VV8s^JN+%*f5fq!0CThkWg%?=s3p z^`L=O3@Zzzd~RAdK^|JtBj*9dDboKa=L@nve1O2#o_r8IU7GNo8?>9IlD*40~4AW^J8Bw ztLw;;G4vpZ)F!oh>3?=b<+u_>3ag4M$!Nm~lV61k6v-1|iCAvJu#%Q0ec7OuJQ z?y^q$gPm$V^j*Ex<2T))lvOibi|zVJqwU!nim-me@wEc4Mm{cIi0MPhb+=Ht63`uS}QTfDY3dq15b>eYf*Tjd&1Y<@{M38s3Mb8MS=6xo1FE`4 p+#2I%r)?JAYv!iXO-D=uMg4~lzO}T$tKZWTmW literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll new file mode 100644 index 0000000000000000000000000000000000000000..612aa9b9ee9496e1a7ecdde3b71b5fa6e0c33c08 GIT binary patch literal 132488 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 ywLu?r*r5Pi361#{! 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
7dFL@VvRfc+9JL-`U8*0 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%0DT3e?iJxx!P)lTGR@K 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⩔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

W=`w)!A5!7RwmsX( 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

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

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


E)^f(Jxwz-MgT|fz}uh}yyccvh|SVouizppIe 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Storage.dll new file mode 100644 index 0000000000000000000000000000000000000000..a8d1c18fa55ae25a09db4fa5ce917d563f67cfd1 GIT binary patch literal 19336 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Azure.PowerShell.Strategies.dll new file mode 100644 index 0000000000000000000000000000000000000000..7e8bf47cdf32840229db8b4b804f485b6b6bc79a GIT binary patch literal 64392 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

-$HGIUk^ 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.dll new file mode 100644 index 0000000000000000000000000000000000000000..70c5ed6806c621bab9cb23092ee5c2a15507290f GIT binary patch literal 784496 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�JG`HHn}?PvKtr~IB(et)3jnLqvr+vL3<`E_9$@*ts0^Q{gQppm z&TuBCADqA8@Sd0`4kW)>K$?T_!#UhcVh$$e5Mt0qyQzzi&P&N}mgV=VGI~kbzD&n6 zuPmMIY><+hWN==P^Tv>*+szz0;CT>v9*Pf>C#L^(P!f~jYXAoP+4L^Jr*i>)%wY_K ztQp0uIh@hv5~K6RD4lreT-os$UK@d_cIzEd{&v$sqsTnsmm#I z-pc$D#dFQObUgC`9SHj&+_cP_>YWx9P=(Yd#4@qVU+h3%)7&F-hIlnc;+u~@^2%HFm96z zC)#FB$hzgZ=azC0*95MfO=NBwyEKxS>$-{T`j{-*%_ne{nZ85=Hg`~Jmaj~Www*Yn zn7WebIl`vrGct3{Uw?#Ig4dDdyr8VVBqot_=T+MZCZ~KB2K3=h>V*iA^)yI-H(D}56yW9**(_A3o)q2bDH?^OW>$rQxrqD)85s_ zvKWmvaWlAAgHHbA(b0I(rs_2C%H~=@_;f&cx1qCr+Hfax8AeT`fjk4qo)4BZU>?_o zfz9Y}d60g)3nva>t!q!MG%3{p(y2)DGb#E07`I+bDH|fOgLCl-X*NkPT}*Oul3@tQ z;_=49uRy>syS3i3rjCz_N&p}*SJMh101&H32mxrzF^~!C#f=3VILKxlZpNDPczKF^ZTwN|+V)Sb>;(VodTK z3rF6uxQ2QEZ{)q+b<~!1>e}javokf}F%V~H?U;kt=%^jD*Yu6k5S)iZS@09^KL-Es z9oLbYP&+0+E>k<^h;cQ!v3~oW*&Hrlz;CBN3cq9g74SRKA2S?IlRu^dPMvTp%*67- zyqflD^);DrA-GLA(eFXuz9()~K;Eqv<(&XPOeTW;=x@RLINDPlWzB7y0OHkUX5V85VVxZg>s?ojOx& z2YRR9wd`Z(**^Aj?PLE&r^w$9D*X5{`M>Os9sS>ciy#(bL*|fRN9=^tY=mMuc<()RY%mi1n1Vf-(P$eBtgQTYi?}CqEW=7eLH?ZCZ z&gp03e53{?wh*~c||+=Kan%EqkkbT-k1>AGyf77Bh)Vi&@2D{A#khtJ6ylW zFP+2V8W7ImiO?(mOMI@ke7=*YuED*5;FmT($hT((#08)41yDZ!BXFzv4_v>_4;&k z;RhCkIR6B_bQ^}7Z4-RF$n34|+wesx6$v~o>*$y0^fVj|nKdo5 zx|i{%&+Kx!uSqP9XY+7HzvC9s9i`nOdK3JjC&4c|l5~Knv~(ospVDE-z)u$zLiMog z(?{lE*C)=JaC>K(j%PeL1O6f^=lRHp0N1U^dcG%biLA)_U$Upl8_?-C_tcrPM3Y~4 zOT4PZPbiSA*$gxn(V^JKsR_+e;`+Y#(}iQT zNU#FPBEcyO7RfL=p26B6isU#J$ptKuy|5x|>)y7I<3^hw?Fh!Yhf%fE2@I^^dZtZW zHJddH+-jQO`bBTC2*_3=pXd? zrSzMXJ`qa)Ri}6-^q{BHX_vR?-R{v2l;sZM8o?XW?*wlQAYNwHOMAnv@MbH+io#EM zcL>~Sa4HPE`K7$Eyv}M)M45e(bZ)V9Iwh{sSy|v#^E0@9kzY!uRp}5>Mu%l^tEGce zDN+VK;^KZdaXm9mT&3S7aI3*V7SQLH(r;7xL=2*To25TN;<{#{xM_n6kED#(5LfB1 zE^w>CsTa`am(s_6ZRP_JgXrIG>Gw%o*Q_gU+N>?EXVw!}>Ep&E@N6}c;QB>=Dg6;j zp9rOoLEz0O&+q{1>jWo+@xc$@VZ(Zd8@>w{140D`n$7KO6*T<*2=5ecW7N$U6|=J7 zLMXn~d33RN1YP*4%jn%LqjA$tj>vtmNhjzA zRKSuzHiUKDck@pSj#yt4MXaeB@j8k4%HW7YYc*oMUmM)SB;SA^8C$K-@doFZ0${MR zL4*(hh$#_503bGu5CTB|hw$vN{N>L>ufAX-1jxTiXk$Y42GAyiCJ@?`&^ClNBXsao zK${cF6E~I6>BRkl&;x|FAoKyDEeS1VxUC4?L}+V5|01*vp>_KKZA)l7Lfa8Ki_rFj z-XpXFp#efW5}I-ppq&UEM`&k4HxQae=w(9F3AHQ$G=tC#Lc0*UkkGD#-Xydeq3;Oo zPH4G>fc7A?H=#WV9Ybg@LJtwzn^0;IpnV8+6WW*1G(!6kI)~8ygdQby0HMzb9Y|=o zqXEqXgpqP^0I&8!NzncYRgynPi@wjvPexF=J+)_;liw`$mX(SJ+f<5 z*Jvw13p}j=djl*9P(4jY#phU1PV!DRe4 z0X!|8DPH?2*J7OB**0eU1>tNQRH^ebZEDO2dN4bZ?FV5usQQ`qLHKdN{oq@i8pbUNz>B z0B5Zc)5{co$C%uX+U2z+K8B^*2F2VAJmp$!@~la)0p5)$)+UG~WhtW`jWO;o;b#jG6)Lfp7sPz1mUavQ5MEcC*G|a(y^18YiXj5Bzx_!r8mR zV`OukpFd;w)SSk;AP?%{fne|FZ%trk3FegqW`DtapTNukCdugoX2bX-=1;)%EI%kv zus-@Y*{hoCu_=8%N~tEY4RIs~V!Q;m$Vq!d*;4N})+ZD)JVr#4nBPSdn}_<1Lz97y zD+LOUizqcz%H6$AB_{kc6F9akIZR>rA%2>NHw~8^w{k&xZo9??P027H&_@i#XPR@9 zlSDs`;-OAtyT_Cfj{SIcP2&3bQ;=@W0xhkYw{KD$kNwq=OsgCL}`u2 z9n1O8vvLNjf_nyA{-C{=OKs&-tvFHg7Z03&C@0y&}9%;E;NxjCGRO|*{Yj$`NBIN?9 z-z7h-;p$iKYeknYY|=;g=EkPR;BtuC1MbHY(bUuwTmeM)@_u*<5zS4_vdU#-EICWT8=;&>CHcv;)$91vCY z9U>pg;r6{O2m3v{!vCy_?R0Hz+ltEFpiPKM`TXoS@U*b?M!P|Ut%{5y*y zCysvw!07g%2qD0Qj@v&4vj*iUl) zdOy++!x4M_0%DSTsmI$UIwsLcuupC^#_JT~FEXpjZX_0VU1i z(iru*i$2rs#{;UD<4#Hx)%!a{AFZ(I+kk&#zh=N7w?c%%l72QU5>=NV9TA3S&jR~# zK0dIE2WPs^Qw!53s75lQzQLyIM!FpDUw|}W?`9*cnQgN`_og^8Gwnx|81a$BY;Ap* znED!>f8R^~!)o&0o>5|k=a#eKm=-KcB);mHgqUDNjwDX9ACiQOTUdznN=mRqL-Xa- zC?zm5Ncr4CSKCp3eX(T1uW#!h%~+uFb<5hjncK!2`Qa z`8O&M;4NP|uy>8a0gSrrrZH=*3gF2Jx!S(@m^}gBZQrZ1eIpcRfW8+2_g;sE5qSQ! zIA+`$%L91jp`k1Ft)QWZ?89U%)q9+V`s2?3SflSb4qcR4-@Ejjsh*z=J>wU`^yD>* zeSHsVsP`^=X7fHS!XO3%^xY4*cP))E^}O-h3e&g7efo>O9%V{oUmZnj)KH%ueB(}i zuc{|g+xG~We&GvE=h873OOhY`=Ilkn{k@%6n$w4o2RVkneDbKie`{0*==+{@@7AbW zJ-yml!hM@(_dBL<4-G|RUn4{PN<)o0afNgGW~(Qe^?pwrZv=%Ra*Yihkd#v_uE%)_tvHK{N^JB$gM3?H_Qn8#_ zD;6Uwl)qv*yH@NY#IC5=edAO-L2R93=f~J*iTx600?2S`jP0aey{p(OV(fTgpHl37 zF?JHMw<`Aa7`q{{7by0l7`ra9$1Aq}vHdZ2Rbodf_QDuDkyux;55(AYh()(Xx}V2bN!x3RO)rk*70Dh}Y)6b0$*xuG zCNWm>>}d!LRG38pe57NbTlHoBDOrSxr_8jGQ$_oS-+oFj|zqjwhk6O`+FahfKHXioQT zT8Zf-JEV^e)&W62m1Y|Icl43?$B=6oj9 zA=fiFSQoTe4M1lx1cu+r98@j%0Kmx)e*MD__M4+tnS3x{a1w@l@>b(gqh9+}SyUHq zT+qBa)DJoM6ywYkknHX$j03(if7IUC5nS@y5Pre&!Uf)qL&IK;-8fWk0t?p!k=RUA zThr(_dX4GE49rEeLCDjQkr`(-O}@NF*;w1u+|;60Dj6&{Hmj*hKU&0IrQu<+{g$L? zjIx+|HUDVXteC@KjKSKswKMB^!G}2>4SMjnjqbcV(U893DyD`C&0R`j^*{?G$+7{tv;E? zLHs=o%K`g54!Y5`BPG9#2IBKexMGCsFX2ptTTsFsMI3BY>C`kdz!+#XwqUF-wubte zw#00|cprGld2;MJv^Fs$U#T`R>K;NEA^ z#sI-l@VLzYFy6SCy;yxGn&Zqh+5vFzI&QwjjQe>nZXKY%4E7c)&Cb0RemicX-XeTz z^QH0FZ^&hTL6(MNR}s0bApaG$_LHwBa&1Aba7xsvb7{SI6+xE9LAMae_Odo#8V21? zU{}6HI5dsw5t_u6|F|ScUJ@wOH=Qq2`n2(wcgUy z(|bZyFWPf*bIQ2ULL1Wf1gl?C3h9Svh{~;BhL`?_MyXs-hNnrWq_V7$v0hqGn$Ekw zXZt5!(saV!!4GLU#YRvyR<=A=rpK4(m+A^QY~gp-gg8^c2di*w0Tw4;n$!?`{{7BO zh;tum8o{1Z*8H8z?FrbuL3;vBs$x$#hEZYH;RtOz# zEm003fs!{rgCh_!{8+qaCcVS2K{Xu`7k(q)0cGCb#yIP}AH5s>{7pzlI^lWQR+rV5}0q%Zi3pUjZ zw80+d=o%9#=2r7YOl(gwv@5{=Oe%(6#nn(N1>4Dk(VM{+ z3;iODwcpH%c%{pDc|VbtpC15suQX7InJ2ZXQ?5i*?wS=iUMUKe=hBB84n#%LH95Zr ztT|l1fMpRkQ|CvVn)sy6DV_QlGW*cyD1W+j2V_ZP$uIbFL9u<-ia+SzQL^V2@33G7O9M%u^}cZ2x^InYxJR%yhG7Ni_RSoBOrDMNI(w(T@9F?E&-c8c$WCq=}d^{H(*=mS&e#E^2VtV?P0&2Np;$C zvL&x2%|e#D`Ec_2MJQNjT(q(tbs^$pI2PgnFKR#dvSL~L5mR9OuS<9DpUJO{JhxS! zl`B(O+cNosB?RlLRKHCA5<##YTLhQ0)1g#;rSZCi;O18ip|VD6XV^qNxUE~ZtevVs zQnj(1QC79%oM3(WJ!n6Qe8~H!aR>H@V0oCF zhPGMUER_3^OvMppxd=}(HKUTg0s2%q98yoTC+QL6#@GN{Ubb9#CDCV4Ur_;EMlW?% z&QAUWU3jTd7cwdCU8gQU{iOj~-s>KfZ#*5TzKuT|{OgW+=^F-VS(F@DApAOyhCg{t z7=tmnts&QKQ?MTB=GC88#IK7f6`$U)aI@6&^M{^}QJ)tbD?Gq_| znNC;f6K#8k9 z{yJ)#wy#zWv8;anb%;I89ccS3E=OijWp5l+At@SLp|xznYV^Mtlow?Lv_)ZGnJx`Y zY>PNx{xDxha2SPi*qWCS9Bw`ZPc)>JBe({yyVV9<7u;pTl+-#a zEOyNZ6>6=gEtZVScBocPuR$_fAKw=tOVuOMJ4>M})xRTDzL6~!N0U)U#X5?iV4`h` zTIzORhl)%0xq;O)`fHE6i0<0-vn zv3*uY3b%pT`_x@LoEtZm`$7e>oR7#rGeI#L7VpNSb5o@xy>y~O-sjc!eeJS5u6_0<3!ZxbmQTC0pj)c`z(J z(Dr^@m*X~>%>ndV@3c7y`5M!T#9{AP)?Y0ntn|^zzHJ#{Wo-8o!@gW8Lrp5`^HkoS z*5@s=uZwy_+m>IBe1XxTe4Kd^2LY@L>F&MK;h~U<)3&RD)i3o654Rq7iU+@}M*$#a zU-D=QHVoz;lK>Vw(8hgN+VGKw*S<&ha9;)<`GdE#jH_0VuGu)pKplw6?0N91C^ObW z)*Bl#YUqL&5Ht%_v6DPe6*MkYR0Z!c>x56*!%JzliFMEBe<^<^ap`awS(Jvf%)2iR zWZv=X|JA(1E4Uyz>2FB19L%k68>%Rt&mB|SlWrfH!>*EDRz|j7iMD)fP5vOZUIJ@K zp1!RfayDyjA|y}lRu3t~mI%r7yVXNVi<=0kr-rMCJw4{H+EG)|nMge%MPL)%HADKQ z&ioQ6k!;|StY(X1j)Q&1Nt@$orh&QU#K>GD01zid2m!DKWD&Bp$XE=1a^x!j5Q`&( z0NXi15y5+~i;OQ-w+sxy!R#(YwhXvkdFzi^!Gf}Iu7)F$;b!9s0D#@N6X*mm$e%qM z`9A?Q1e*eRx(_cLz#Df>22)X#`S}?RO8LkMbiE%w4u))}F+{%&aWOJ54l$o0f^+FV zIljVSAwS3Rr4flJZDjHd^yA>)Gb-4E{B8lY0NS1l(3fV_4we6E4q5Q>4=3%4rKm6u zae|{s_;XEAL?HN86#`3>afU4e7FqZp#sY`+qt)m-DSs!ZSdN-q*c-;|!UOiqD!1#3 zWDr*$Y(Ep?;G`6${C+^VFcuJZ_pqFUvnlKhr$}Di_3FyzZ)E%gr#s_>moh|)_94EU zg-2FlPcrkTdx{zXo`YbcPHC275qX$s=Umc>3!SJDmvoNEH=wjG=^W|yWb%JUz#Pir zEP6?1LRqBbJCza^h3Dj_uy_%=_ACue6%z|Xm)JT~7Co2$INB$-2k$~@da`cFWYwwK zxuL{-2wB*@qsrsTi|T=(rl^|hQ{{>puQ`&Dd{NYLs=C2BpzDTISOLXT??mAKH;fij zPe2xBTv!?90n5dsP?2yAz}>C+@kos7(8G|YuoV<(o`#U8(WS!Td?(8j1v1czWk(0v zeLfh%{CXiA*2h!mP4lY&K%5#O1Q^S6kf#xaT7!de0`lw($|m(B<-_HFJmi2p9O4I8 zkSf}GFLeM56@O9nuyNBpL%Ps-oB@gs4n|`WO4`8z%c~Ht@CcIO_5U8f@>6&ekU5

HX4X#JJ{B-zS6vmOWx>%;h`(YcP7(-Ed*h2gpm;=uvTsF6=^*bJ@Zu;F=@*9fJ zYvWJJYd`fQ()SE$c82RwPdbHmUAQ4WtPL%H_5RQt?Ec91EEl{0Ho+Wt4pjr2c-HCw zUnM#$BWln6_tJ9fz`8ZzDA==_vGOSuztIa00{Ld>HzyFde}~pC zZeY)EhqxK3GmTmW3ok;N@Fo1jxk>#w8)?DPSP0*IJ#0_B0 z$B}`wxLvsY#brM&^@eQ;ENNJab&BVMD6Ys1(SG1^a;?8R!k>Q{x2ML^nrPiIPVoZ7 z>gM_V7Fm?<@{~~c7DVfE3kQOjdMK>t*@FyqdsU zvd;2y64ajt^?2OiqILSat4IzKH%R?-}m6#xqv>wiU>0z zSP8#e+sM^{Q#;BC~(%h{q7n+=tR73 z$;jDG@k)5=$v#}`l?`!~SC&?LziTx5n{A+fFA0sS5Dah9uABc&BlnSAgHIhu3Mf~y zbhjy9?z(87H9pf)_s#%>a0+dpXRbvQbT?xP52Mc3*R+Qpf)#GdA*q_+_duHKG{~k- zkx=*%0L z05#N^PiLSN2XRL`tu_|u{1tS@^5BMe6e*u&jN0ih8R55$Z&pM%^jIWX9_9TuZqnh0 zBQffhtT48vZpp}I&lxkI@`xblpgsfrB`xLXOz<~gyEecWofiFr@qZ%zzr_Ct{6~MA z19%z#D2S8?cTF^{^vmF%J9D88vKlZ3_%$`fgFbOH zbWB4&8u0{ON1&(Lv(^Pwt}bbp6@V^>S|u&Kz2Qtajo&MDmkO_jjiBe-8m zza{Wx2pr=62AtZ_8zP9g&1x7;UDoM4?IpBpG0HS z>9baJH$z?8AzuH+Lr_h5?xH*0R<~sNfl&jav@sIdL?|>y-+`AlMkRD6_#Rj^8L16^ zjvxG4n{euJz-)t(rV_>HR9yboMNzL{#ue$&3@^F~ z9THjbS{P-uc&kIqr-Tlj1zD*>CA8=ePA)@-eAS_2oxwVkVNDn5M5@M2LWfG|gbtxk z;~#ChXX5`A{I}wN6cPa^^;i6#hW~kxr&70Yu9f?ylDfr0OX!xL+64ZuiEjNKURi(A z3m^u)dJJDq@o^@)RNV#X6rTXLq*weZ;93d4GXz6F|57W5G7@uZd>7utPxvNk(sBiK zpgzYai{N5Q+>@k!4B!N#{Ktq6Kjlx_PVp&*J0E1)!XKitPWh^(L*VwTEj=a^fMLti zbml*bUk+PxDDou-I7MPHW}!3CdVkbeG741P0TB*ahz~KP@#Wsyfg$k-L`VzGvPxe< z#|5?l2Z;FNn4%GRi~cZ~{}jvS|8Y+78GP{yM7lD*ll?V#;4#1u6Yl^NmT7u!u80~&Jbr}FpqbUv_dPA6pVvsFrFbs zV-09C$o0CE`|}`=a>rdJEcX}j1%sG!Pyb7x-2Dh8LlTU^-;v zs2E=pUnQ!sUT4S)r7+WwO=_@5fP+yVfF1u(EC)6C4Z8DRz;6?3Fm5i&y+eJ+6Tv{S z2GbpAeJCnY#sj4qP+|=x9;dU1AqP~l0sl5IFMJJ!3{Z)3!RjDc@ZjHB8#clTYw^R9 z_gPg%3}FwuM=gkIb6-Mdf-JCI$#QQ--eTC2EO*N926YTMuJ9pC^-W;95@k1mC9{be z)*}qx+Vq2o#H`!#G|Qc(%Q8>K__>WSlreDF#ShjX272`#Xj8A~R?(|AHx2vz3U1Iq zc^+{W{}$t0EY}XhC!FDM!Y7eQPO%Z7Q*6R-;6R-&XTYu*m>c~GlyOxteuFeT+CY!< zBR_Qpq~)I*?gTpqE-$7C&#@m}MJ)}JF?3RN6oj;bMF>)ugebV%?;{|<<6}52;if`H z!q5`YgKeG{Z=J)hs zpC15K@S&&WBVZXHwDHI*Qdu^iArj8PukvvLRq&yw5I2~H%JTn^b{=qc7S-Rs zd3JNRq>wGyO`(L6@R;2V{}4(x3M3%Cg9wNy(h0}|dnv+mAF3cCO_VAf>570TRZzM# z5k*1CA}A;bQUp88`~97H%G|rVA@JVM=T12@bLPyMGxa$$lk8>g$q6bo?90pN_T?8K z4BQXnbsWE(rMjK66 zQ!v~OrA64BH*2d*o=6WLBtpR5n8H3(?gCa>p4j0hA&nht4HJhwNGDfW0VsO%HXy8+ z<7+NyF0b}N%})XcIvCbta3;8(*X;ti9>bi*>s6i1JDxtD^7PBbuZ9F=4|vN?{V*yUJ0$J0+ao(d4IEIQ{@R-jbJb&~t+9o*Ewx+aYvEbMx$pROs# zDkRIwu`2F5nORLBR}OOyFUOL!95ab2*_dTEPmG(*3*%;opTJ6Hn|pH7gU!8_n64b_ zyK)E+_F+(tIatT7A$NT_Hpt51%MOCn8oy+t#ax`J>=^Wq1~uoO3g;_@^JSdjnxu;6 zDZf;9RM&%&owWcWJ3@f$2>VcZZOqC#7~w*wL3Y}a=*qf^QjX?hMg172yR!>;^t1b| zTXj7%1I4E>QyLfG)b-Xt&AEQz+@NqSES!sQMvKTc+6WhUG?-kzAX+~S1X_g%T9wOC zd1K7VCK%y{j@C^D*bD<&H^+*$zyME;Tx zwl%vk+0N{-$@XT4J76U{nwwXmvCFZ1PA)crVEPOJ!p~wL7dvC=rpMuO@o6FxVJ$U) zxoQCFUm9%fB>p$r)glcMC;H3ba(vo~E@RAYw0k=nqBZKEx|GwtF)&Z|lZON6ZgF7I*Vn zzTSmg*h~M&$U3T{ZPm0e;*>7^}VU5|DD`9u<<;0{4{gy zUs3>nu8lVX>f@w zI*{&mr$*de&<44xQ)`p;WLMY0)Y^nCqn;)IHL?_-wTWzRcR}e`oA|p6^S^BgmXWr# zmqy$Aw(~JMZG%i9mz^-jz)ZXHyBo5IhlNiOo%zg(bI;*g`i4ic{# z!rc{9d+O!V7sr)KblTL{`UJI>H*SR=U*i7<{)Ztuy&&M=RVm?1<7$mO5XJx2mQrbJ zA_nn75=CDCo%Y_f2cIkg!kxH+e-U_BvEC%d`Wus}z(rNmUA^LbM5n~4as^+^7OzS_0GfhnG1YN0RYQ&c{Zd&FDO!8@w zZeJ&ojpSUWs+_uXy5DaW13nJj^EuH=QX_Lgw67$H%_&EifL(3PM!SpB);wjG=v(Ts z58;#XvXMS*>7;M?u}OC%*=PIy1>$yRviUMIbo$b%`X1X`ACI9ytO~ZxtU1#IyJOE0 z8f{4JS7ySuk3i<~ODB`H%*Q5kS$dEamY)5|<&T|x5N~XCrG^}B#5kI4D}SYt0bphj z%M)n=5PhJqZ7lAlX38DyhoEwKm6KE(ZKM4G_41&AWY<9skTes=rB<~>V?du`*UY4E z6Pl>i7xTQ*&=~7b(r`^Ddij!T!9S;!42@wIXhKibtKk&H&2L7qO?KvSTY;tdHYn%u z8A3(uXbIZTN3ect{{QIV(>NOBQzWZpq$piZieb{usEZZE>hk*eBmoAE4RMv3eeeIJ z1I1!W?7@TBHHa;U$eD=)35}R*lzXPv#8)KycyECF{~pcBvO*L)~>eJf%nuoG7D|B9wlNUzK)WrvJ3yJ7z*_8dQQt8oymWLjrT-G zqN}qq0qSOU>3PQT(JlR(*RgAkm&!Sfjia%vCiedaN7y>fnbZjyR^T}D zMc5o3B-T5&NTR|oxmhgd*cBz1li9uDiH#xQ`)kHTrp6KB7?_XBByovE} zx;6|}YFRpAG}(_t7?)ue%O&OMjErvspwZ$o&f zMP**zQo5WeH_KJ#g_V2hgKV!OsSp~(&O8ivxEAfkwmyPb{^EM` znnhn4XxB#Tj*)ET*4)?7*~4Y4S`2nHwwTW?;-sYNtqD;sXA^FqSPx!jRp0^J5pr)m%4dMpD*kV?am+;)Ghe<6xNe2_?mP9wLURQD<}P&tOcKV5VVz(ugI<* zh1rhsI{jwPlGtQg0emp3%JyVh>A++QzH%zlot8i(y6oq|u&yW;f|mA{uqsD$dvloJ zV3nd}g3G=+IR;RgeKQK$%Km>=Yy~het;!yn%zDbLQY`!C@K~Vj%?=(Nr>Lzx^V?g) zgjn&qe5z4(x@;kFQ@6E zjL@h!Q&#mXOleeXrHXyP@G1a}3R#|xmr{YpbiB~0xD)<6HL9}-h`xovjb_Kf4YXOl zt+->uc^b~#T`;I|aW9%?5$7movt3$-z?~~!3m0LvL{ebtTaMeXS~{ci0MFMJOdfJL zYCdCnmsfBOJ4`Sa_vV_o+biz>)x^C@untMm`s5?Wz|)h^;y$083`NhOIo`u>CvM-2 z!heVSlM27Ysds7(es@MnboYerqvQDqWS%7YmG+@_(xl-qjLJC8f++t5Bv|n7&<7u+ zlHJUU7@lNbDC*Qo+L$wc2aoA0V_t0TOU%3!Gi0!JZ3XtPNDd1Q7t%>ImvN{VH33}# z=<`l$oTNmTkucTD9N#|PlyA6ecAV3`alL@aO53>Pa^>WNh4U@jNLbE;<)##@_FPp2 zPyfcGWt`K$8Ry`=(;QzmxF9==@)>br2aKaL6-|k;bk$_11b6DRNh>XMf?BB2V{|Y} zxX9_KCB^2ba>>z<0)@xA626e0BcM$w9mH_1n~* znVywa=I^y+Bb_{9R*{3}p!0<+UUY+*5YEZd~D9M)rad$jst?uT*Kxo=~ z(6ncY)>we7Y0J%3%9vi$Hq8aKZMAW)Z7WmsQ6gE@#hB7ZK_#YV$$^Gg0jQ+N^4hji zfydf5Dk&qi?Xf+pwT*QRo4si@Y$Q_ULByLX*HF6XS`6Yy`ucvAir!d6Z)_%dMM-?o z(*PvBFB^bN@ym&x6{W2?IfP8ovM>Ol$K12zQYs^e6`%n~wkLX4m}Vz>3_w!-S{Bh0 zaS}b*x#&5HRZNW$rZH(`8Ees)ypAHfF`@uBh1UbMF=8txQ>+k5b44;$;L93c8cRn3 zyMcebtZ|-2`r5v%sX80N8ys@U+TDcnK?zwql%QhlsNky=u)~2MV0$89uNvog49O!qoX-*{SQpUuajPvPjDnmTM0 zdWvc67@LvWf!S>cTaQQsm#?9OC((K(yV@s58L0GUldoeyj(lwu#K++Z;^Q&HHEj}k z6Evt3x*1y&ja#r&m0G1@qH(gU>am!bXzZxEacdt1Fwu}TH2DqMsj1W|6?lFK9;t2$ z4u4Mo>b_jfV-^BCA)eGram+5B=&RGiiWBHeP)pD zHB_ae?fc67REN6!3ARPf63Ls%HO=osN@$%nlWT5aZ#tdGHMTXU6FDY3r7XZikQrag zQ<}V)7|xrHQh%P(o76F9DiKjLHy3eDKjMeZ=;nXRrPplErC+%wz2G+AxfM}!bHKgH zPLsWnq6^-kdD0%bc+F;dYZF~_!I7d1-Z7zlg4;W@=;cbQP5YYMwC~|!+SgP&?fV8* zkP7=IECujM_rsu0z)x2MEiYZD?arhT&M@d1LI=n&()*Gq-1=!M zwkm&$Rl1pfec$*Pu&4QZeWOG@ZD;#tM~Zc7fO`UN!_--UR`gMW(sb~yjELEB0oGnC zy+5b1+&!<+{6=GF0ZyX;Gt)^OgI=U(sQY5{{uA(I}?6Hmqh5DF*dl~1B zJCCX!_${tuBcqLwQiD(h`%~4WMC|DV2|Y-KLXv-CWl7@V=l}N6r+d^ygN}q&xXzyqe#{otwtG4 z$+EYHuMd_whfB{~l_<>JtxGN@yV`snBcP8DE=4k{*h@1^KUEGh$su`Mm=HRl>X{Y9 z@>|}BrOReYn$2K;7B7uuD4z&IaS2&5OqOG3BK%Hno*+$jeeYwx4$(c{E{KZ zB;k+@85LTnN`_Qe$&hTPc1oH|hF;I>z{!y6wvZviYBI#T2_{40NFu{z=t-e2WaJlk zQyF>mlBZ^ShKl~EVC^B*t>79%y9sR?&rtUdgAsA;6K$$JOAbt{RqNj=BYUEeA z#A$`9M&!?HQPH-IMx#OXVzgxSB3e{0vWL|R(>2<*QoDK)KZ|-XtX3~iK!@74s7hp5z5GU~ z=Tr{Vg!T)~Ql^rw=9|#?H}FnLw4owJJ1Ty|z&A#Sl|8)LdvSL(fP}gXws#4>yvzxF&_@J?`1GiAGzaylHjJWA2)>_6G4@ zxPo|Z%&3#8YWN(+c)FZ@fD{KfA>B->8UHx z<%R1rv`$?WU{)`>zhW$>uEx4kSN|K~)Ri6OFtUwaRG5mBdj&W<#FL%d)A)Ef|7ZDc z&R=T>ENht4aB+s*pX-Pd-r1_g(p!Z8#_DH(f~X&z+Y>VCV=)l6pH#fOo|1zFWPb^( zs4MxXD~?ktHk%@53d*JrX0(A-*iw$|DR)MaNLKX#Os)NPReiBlKz%8IwVy0+S*}zp zHa^C&y;10#R|u9iG)6kMXOyy`!6hddscdL`PNceHdkWBohHOu^jMiGkx>SI~Cr^M( z=>P#Lz$QR7$M*g+f&kgEJ)_PTSaWQz0H*?^IkbKo@&6|OU-S3R?7fEnO#a$$s+X&~ zfZfO6n?tL{Qn{K_Ib7Y)p+IJDGyFu@>>oFpuJ;TpCYK?l-itsuk9#tlI(Rpl;HS_d z`)7%EgT?rN4pk$bHTt{@mp+Dt^L^P)8u4J5oivg?!bzi7P>>Jeguoy^2Gc3aACD`P z)JNxFu!E8Nzkxs8Xe{SKP7dN@0qYc#>=AIg`9~iV(ayM+=Xv_YN}05bug8(395vwy zzW}A-7iFMZR6gdH4I0Um*4kYpp)x9}9bpnNVu5c4o8?sLpM7nAXeH|;ng3X7YgC02(n{`r8zJ*fPy zXbIwB+Mk1RXk>cTdiAYRwr3@> z8p2l;evb*rg#cKQVLCCn2v_KulsS#_3sqfnD(9=;xR?ljtKX9X=4TF9B%(WW$SK4L zNPC3w8ddKQr;f#eXjDG3&7Y_|1J-SDUp6Hq6BNd6hUvU=f zDVqb^LgW;&F3$tt~H+*(TNP3&tC)7 zTW4JdJguf1aJoLRq4az9Z(Kbo0{YnKFqVLo)}sQC<9|Q@GJr+=t?mp_{5@jFyQ}W@ z%Iof%MB$2;EF`bH0%CQySkb(A178=0S7AwIfB2Am9|T^od)=pH*>Ix@QA0vnz1NY0 ztKJQp25!qeUuhb6BJ(WJCQ{SDA9Mep`QOg{6G1(HAjj`h$gX~C@;1{52kcJXk-Iaw zUM1;H#4(c{Ip%YiDJ5|jiuXJeyeF5Vm{N!0f2t#6w2y+Pl3J6$dnn%ZP)w~u!H((( zD6AlFdMMuVP)w^u(Q}laxf)>4>S?udWe_Ee+SGoG2h(el`U$Q5JnTc%7@WU5c@3#h z+o}~I-*0W}C3^*@h-4@_O_Hoxi3oQ`ndbQP+>A%64A-vI9*TBl@@?(vy0l#hZz99m z)eqFJ=2ULMI_^e*!aMxT(GbJH@H0nT&r$<*XO03v8!@8GD7stgY219z=)8$M=sypE zx3}OdhDiCi7Rbz7&HRy>f=5?_?n6$s2(bpiAIq-ZjHy9zFUE)^SDJJvK;xinZ}P2l zjD!BEmLPTnh?wZJDhV4$TtPtB!G5M`Fs-VPKjGIQ9k;J(9 zIx^tK%>vBTI6y}pH&qhuw{hW`gK$Qx^bh0ZZ3Hm~d57XL935>f@ea|vJ9NR|J8^Sq zjUWZ3$xj6h;=8a4?#su6XLn=S6DrBQ0>m<E=_Zei0=yJ zkVQf{aaIUY3gAu}H~^AR(Dj*0%_qgc_=InO0lk^oLk zx~&>_CyI~;P03@js`q2Ij|swkG_T#6Ye(>-E+osVekB2kHRmx7KGaN6d z?&KK&+&Y43*W+a`GX&LNDCSgC_aA6fS_e@R>Rz0txY>phOZ*4myM|Y=4(?e6VKG>J zuoEjG4&tYjqjd}MFAIQrg>LJ=#)0H%0*W3%zMv`Gky}uc-{wi!kTv(O%yg(MX8da) zQDimxcLc<#72zeoj{P2~0KWebuO?gTlQifN0dRh9)Cg?n}N>(Ww6c z9^G^!xV|nt3s_y>x8Z(y$|patcIa6A8-gmALVOS_R(OdyjSVVw#A!Q%RG4Q{8@zdh)Wqf}X=M5u90s1m7+mli&&sZm= z9KdtCiJ~*wg_b*Nrt1ef;x>AwgK-cqdybi^obuJyyydU0dEI6x4_{wR1I045%0dIB z`1)Fav!;{lvVN7i_J%e}&t{@&X z^93{iVCIXMRM|^d(J>}}x|?m39!2QrQT`~a`aGt3lmpTpMNoPaSzcW!$;ds5Au}v~ zk5WJ#TeAM->bqVw+&vo^8Se+%Dd{o_>0tmyn;9DK;)jlyqCH@)D8H?ln5C`mnU z(mOImk)%p?{!L$=v^%!kEE}JB1vHnbG0W30@ZQyV4`!m&RC?i+oR=chbc~` zBtvFcd?pmoj0u?xd1I2Y_R8H<`ZO~1ZyS^TO^_!;|HYf$%PMCO{||GD$ToQDqYlRfmDw7BC*Y;74h-TZTtO^<5I39IVrHwE zD7{r#Uo6xl?P+-L|N4`rpDqgtD4S$-XK;0W3eo+nv|+;g6-&u{sX_q+o9Oz zF0N*dHev~%t2c^bRiSKGh3-a5Bf@fLcKTn{m|c%sfVpE3D0(B-4|J7odm^ifrqbZc z`TnBlZwTMFsC-{6>%F1Ue~p)1mH{vOC3^#1)~&VyNt;AF&LHl3%xnal_A6oYg5d}Bx{%F&S6f?$7uonH1QifABQUk~Re zVXA=~oOU9D(mG@fO^(@2HDyL60STY)Oqo&ev?n!WhQ;qh3TWDiWPQjp&*y!oa`xn} z#qRt2pYd!uLC9Y>^THKy2JwoRm0ro>>bQ_aww7125cz|6hM6myxr&*qnz@>pGtHcZ z8C^Jf@8M?s${OZ`vZ~8tiaC*(b8HX`3Ug$6GN~kWT}Kd$u1FK*19Bl0NJ3~qHq~KA z0R1w{(($gu)6bF0JmM=_dgG~mr{i;E0e+sa+V9yT-6Cq=vyC<* zs^)uk0j~d^J)h=#8h_0V>%TjeY3mbe`&Jd#`<~rW`Z68$kk!Rpg6I#v3nCT|`h+v^ z$S#^~%_AV~7S>Wx(|we+aR;$MiWO6`o}fXz4ptvq`tnBaX)6fcX^W(1Ojq(r7iV3p zqGsiD@oja*DVQ#VG+E!kB0)==e)+nR4Y4=?tM3Sq+RwDP*%po*R_E>)0{7@AuN2tZ zatwC{NNH~k2+QfUwayHE{ja>o>cXM!Hq=}}0}k3i<$ks7PbpIevxbu_0MIOr(OP81 zk_og6%ZqKL>F8nZU|8b$B>k`@lny7VGNfF*k?iW4m{Kl2R6=?WCFA%pAT6O}ds3=& zEXHiMkT0Q(Yq6+~UWBKPBy<`bQ4zZ(Mi4t#MuoZ^aw?Ko{5z0rdUpvL(TE20-Q}<^EKfu$naqZ z@GRP)KbO+ns2|uu{@&b3l8}#0y8m!b;=QFqf%@LPF`=AGHgi)Er<5IlPkwLf@@-uJ0$m53Ik~oYV~5@fO0m2@B*t zwJ-CnM!QTD?()!c2ZhhJ?;@rxT<+O~^l<7Sh_@uN^G0mjrLR{fR-Wos%D^^(*wk@8 zZ2)=E-5b`4EBMxy?+%!H&_ypA{gQ3`%8O7)!xFrlyo5)4`r}G`&s|3Tsm8Y9LRYBb&-Ayy3kI^%Bh9=jwR|C837ra1#%e^stmfA_*q5b*ppjrgxw0%5LRgSPGzKnA)X_n_Otf0 z6VXC#KnL-Tmf|y*u7y~T*Fp-vwU8gsLS_cBL3dG;`Jrnv$k^EYF3cIGic@plvrE$0 z6+UOV))5e)i%lyL?;FE|QCf_U;#A`Vs)y;j>@51d2L9Qcd<*f&FZ@RSO`_K6jO>!9 z*;UxQG=<;N{77l$RG!y2vd<9}v4Fn0aK5>nnA*3cum{iQ|o+uDg0AZ^N#p zk1~8m=lJ3}e1+fe{nW~-^)@Gx=&rTasgi{GwNqd@#_%1B>6X@fL6rwBH#3hn^8_6Q@GQE`WgTpz{GTd^>tiQ@TF@ur?L4_v3XAApX!26C4%4G z9I5WcyNmrR@}mXSP9EXzBn(m2G=0Z2NhvKT*&}E{Y0cWGdsB4woO(QqXslUR=G^%T z3~^`U4dQPpZ6|f)sxvtkKP!}zsC-r^OkNnWEzT;$u|c)}A_;~8*=1Gy2)!JNXHGY{ z{kGvg2Qz%1NkLcC0r6T%aTBm@o=nD0KOu=MR!HZ`s(uqw`vZLa?pe}fxhsHKuB@TS ztiD}6D-~M=UErCe)1V6A8IM2Zw59ZH_;E?oH{#JrJInG}cG6gJZ>2X~+yf(8SNC$} zu<$u;@iUol6z{xD&t7>kGK@7f4?Yy&`n7d0)N#hIbOQf*xTmQl^V8h?MqoeU@6FA{ zbZ>3lsJHxdF9I@iK0(OLYRG~VhY_0#fuQGy>5I*!_$d?Lixt8HcMAWs@!p(HEH1LJ zi!sC9Oe~h7C$5|ki_2tHFTj*o#1e~nqApedVj;`Z6IUw4Vwj%zUm<=e&%1CbyrcUP z(x=pKv=r(Kp|;*jQf-?yCf084X7tm0T`r8S0Q6o}3NUy$w_^ZR?)=L4-#KYcdf)S-P_+QTdDgM4L_$&CYPza z%>}?NYAv3i%g)L?RR1wo7%r+@@4O+36{hv|t71BW1J6=Jdzc8z(iRisVe zd^TiUXW;8G!vx-SMcv}HhKwm0)2HG{hYV$_A>#(w)hjVIWE>-=v%e{*m@a#0GEKsD zB}&AQF-G6ZMHSRQXnv;yW~He|4CT?`qPkKu>qD-y>I83nj0TnQ*cMm}cz`uF+1 zqUdS}XDEW3x_%FU8!f(%D^zzJxgn$Q+qiL+8#lP53iU3c`s2j0l+xC^b-LuY2;~f+ zbc^Sk^UN&7%dGHQW>+gS<~()yZmq-j!yKQ5c=!sx;k!1)S2qv*QJ((C!tA9l{FeSY z(z8@C=!%plyj}=3#z_^l(d6znP|#n|!tTHo?MbxMxt}<|e8V>M-qqr8)q(pzr)@%u zSrhyo!QCOVvmUgrz>~(=1r*t=2aPKNid{hY=m0d<&DCdtcqZ6%SmNEz_dj_G0 zWmWIR)F5=cYGrqdz~fVZ7=&bbgOE~Wr!yVJg7+aFvf& zS~u$K(lh-1@k*omcle(SW9#MY5n#XI@5z}eFqbo}N0nyxY!CA1gt|`nFxme;>7viwz^nE}1b z3cqFcpfb}b9(E_6$rJrnn7l-V-x58pL?;LFZ-}N6ohtNI5_b;hT_<0TB|(5C=8V_9COrc}eeB^v=EywC?vsoFxo z7S?AUebd%sLf7K1Xc2{<8Cuh?O8#m~!x$v-n zxwyFSA`M}ixUqL)9#LMNUsGUwpn_KMJT7mSfy*^Ij9%5nNaO8AA{VxJmqecVV<=G? zxQ_)I@_lhyzj45>d?--~n)G}&*RZ(E74GNP98KbAd>VKVfxRnup4ym3ltbFQYa-lC zQpCOHT@tgJ=0z@X^ck9DI!V-w?qB{%cc)09dg1f`>$0kU#?c0IuYP#0@yDk|@-?TQ&h7xhRg1tX?d13)hzy2*+9>L$qIE=xNJBD-@VrQbd>*%kX@IIZ^51++B)yyiw5cXouH1wdZmH&|BzLE7gMZ1 zO{~}4p9lQ_!FpL9>y>I4>y=^mP)DL(LxOXO)t#W$C-mP@__=(`_2!OD3y%(`Q-~g> zt4)E5lsfk-ock9}UaoA6ZplZYVI};OU4cAm2?r1Q2*n$0YU&&Hj1p%U>HGgl5bab8w;=wv_?&l- zePfsO*MjLT6(x;m6=2_xq>Mj9GhnBnA`DIWh}cQLYKX1toa=e4w*1iO2&SOW@nXsx?PDA>KMGQf(Wdy_O}-LkU6iRaIo>PULPBF5)2ed+504t_8EULj@IX(P z02-?-Z-uK=;L$egtai@j+@@`LM}})+LqZ#WU?#Uy<2IUHqcf*#bmp{1cb9!4k$qV+qDG%pV=4(Y0K$7j14L=*%Pu|1N zM)EFK4fGj%kBtYc$|1Mar)MLJW9N-3vYpyY$}TJR(Hct(iRpP}MexouA4R3#%^wAo zl1?D=Y>zw7Y>46}V#lx3?|SE%Um*(W!&yjvp1FY7d1f8iV9t?4>(4VcgMe_eyjYJi zKeJQM;R$MZqr@5KWB%e zi%5o|(*(~BNvnqPy9dTu|EEfFXQb7}iZjyIX6%gg0@}Ln9uV3@hMkdK2-LfKpapo^ zR>$Ggp1tlk_zCvP45vY?2=udM=0Fv@WWZ9y;{nHSsZp*7v)u&|r&?v@A+Aw!$wL8A z;d}P=Ay%O)Q%8yvog=2V;zAsikBMV_hP}#gXI3G7kGN#r$?CA#$146A|hxJV#_1=d0 zS?gRd5!CawGm??tB;AQPX2K!Ie9an0L2-+R;)foJDRn5^ z>R4I%R9IhilZWDF55?3v6tv{gsQ8|T;`<(oX|*VNj`1_k?`?2YsScw{)If{}(`%D@ z2?sXG8_0bgIPI4lH^a1FlFww$?r!m8Tfel#`lTXL+AoO|YhI!x@0WOxf&M}j;@Xzl zMA5cP#;t8_k+viD&KayrZ6cfCYA2BS_z#V-op^Y*!S-4z2e3uKYIrg* zQ|{()3(m!S>@bi{56@kZUM2T=ad$l+QDg^+Z?mfDGC;SPE^rF&=#S__c153nS@wZ@ zHV!R#d$7~PFCvj`iK()x9hlmdI5S=F3d(|4*3e`=4ZAO{N&=Ezkm&rc;LQ6)sYhh< z;$2MZyIB_&*~xdy$+D=~6)V8mu9&~x4dA7gGv1t9M5cRRb1FN*_2Z@inLRCh71?6b zdl!MGJJ9O_are#g@~#pzB<29HLIyC0)3v#re0W2KdRviD#*Ds!9gsv$)8KU{5rTMS z+_p?foqvGCyC$mwMepWTDti9gs_p73O4CIx_pWTZ>rCKN;I8zLVIR!vnp>{S!A1@Y z>v-mBI{GbSOwZdGAr^-(fd7DGH9(FI0@?|{>acw*g+vQATtqr)JKEtBm56GdDXY2? zrmFcYEfj7v;Zy)MEz4UXDb=tIDA5{JMPv|L?&ECLBEW)1rV@j5XMMEd+rrsI#Hcj# zYId>;aIx-6zg5nMddbHk{&R8r`=%V8vu9sD*-^>UwL~%9UxPYGhe3AG>+g_OXx$yL za{-NbM=Ywc3TM^2ZCF}b@Av}%6tWOTNu{{pROFzsP;^BD-SVrvwLco^=>p%4Aw`j zYf#a`8}f2-Yu^n)sPZ__(Bz-d7F_ByGB5ZUO?q9aR}&r4?!k&u%wLb%cbCwz;BuGH zYCYEoVeh|h+m5AuGaeWPLtV$tYk-jbGsq33nQAOWuTy5=X z>Z4?3^nE}N`aK$9`hcScwP(p*JdpW3w``PkO+FME77Mv<-!z0C zRH>TXk%ormo^I*?7KOd&-8;i2_fUH;egC#d@i=IDIXz(% z$P*O`{CutQ2(Jw^RsM)CxKQs!vN9~ze8@`o0^xSXm+$sF!O8A|lZNh(^iX_SfvNT? z+J=_|^r3Y|b&TXuCWrcNMzQ#} z>+8%~fO~m1)6p!S4p6D|!+5~L(>>)>yxuwge6=Z;I$6gOhmw(SMK1jBiZ&7bdgo?S zIrPxlX09OGNp=NkPS#akt{}W~bG8a{wy?$u&^tG>hbFUO>lLIq+*}3Wog2aRCXeOb zEse3bzD0JG*OiHOSK)d)x7+ ziR69iXYlXC{|?%N57+mEUjh3af3L4q-8F<;39}nt-yGYVgX2fl19tGWnNd_e^yF9mcMUv9f6=Zom{_%gQiOZdW3KV)YUg5V2x4sC|Z z*upU{oSfD%b4xR~!nEmcv@ML$q<1^)bkZvv%!am>RoxU*v!Qd~$sphJ1Z9MjH8h!h zb=NGF1SH!_P?+=zPM2*Yhyl%uO(bl#YloOE3&UM=h`9h~v)w|+@S-bo9YfJn^L^KJ zJ+1uP5ai0g9j>(e+v5!49n9R(%+Fv(t7xFoiFa)qdnew7gKguTWL3At)VA@tDnF{U zg0g2U%M%DC0f{vfwv63ZE~7xj=in0Ijt7I?_UNMJVaWY!Y6@uWe(xn$<#jK5YU=)^ zv23SW*>`~Z>HSU`tMz||*+o#@kpOpAZ%R<*TWsnXH*hLrQ+6-fPQdNFZts?Ur1dGX zLbT>eoi?ctVj&XeR%O`zzlN@!Cfrjsr5`u&itz403MTIb-tBx!c+Y4QyrMS4yQYtK z(!ggf<(~G%7?mH>9fF(>m#v*c4MEJVdg~YUv09Lb`_0OI?90hxUsodT&e9RrT>#K! z?24rqBSb;?070kUi=g%J*>MK>cs`u1QenT><) z(>DdpOwfFu(C^BlLk+Di+t@O93BRD!U&MeIfulVXO{oBg0m+x-uF7;w{X`JUL$@Mo z&NyH(YZ=G;wnm>zeUR^B^w4ivdY#KWU_wj(n?|_G?4opW4T-Y!*TH&nOzU8qf!IQL zk=@%X+0whLd&;ivg{gO0&r?U)#Ap}93eb~dvc1)?((!nit%kY0N~>X}C(K~>CcrP> z0t%iMP(iME5+{x?Gti?THodL6XSux0>FH7>;ck7*uJv`(2?xInA{I~&mWwN-T6?+* z)PtDPL9p40cSV*fWJ|KIP`E<21mXEAX2;;SDnqRZAiIf*NAyql@52RC}Qkb?;h>$coMXB%HS?v zbmnj}RLf;?nlrS$!`ql)a1}7Pkmuhxm@0|wrTLiT?uRF9StfbCQ(ZIC`#i2WsWNm- zw9HGKsvhq%yFE@?Ul+PLY$9&JC6r)-_yC6kU6|q-D!OW+cV>I z>xPkIBGER^`{r4I^YJ=++fLuB$I>+Rp$lFJ#o15u!R_g@cj52N2i2s~eticXc2F-L z#QS4)+Jt-d8TiDy8xUi?ve~L&0TyGVaagyt(A+rRVB^7ogfJc`!@i~bgUUff)H9v5 zBxfFM?#RqTFe`^*B+9Pj@T~~G(f(dHI6#W;7TsW_KroN?G}8Y_R>a&TaTqa!V^-9h z_i#DG$Jjhbj!=3>qbvK73NxC`A6`IH_59t@S1f{x6CZ`4SFUH-YnRUNoL-9PyP6Xm zO;n~Ymh43UeuReHZw%x#U?^UFn~ zyNMLPgi%=o!J}s^5Txj15IQH%xQ#{k-ZHHkw7_FzCjg_XLFQozFRW!r_?=q64Pn;V z+Ze_Gs!H+@MEOvq4_ykJ!9K>Z(J{5rx)!i!{{u-bgEen z&L|X%FrJY91{NK#BQr173d72&j>2u(Xu8aBo5!tBYki6rZk>)*O+Cz+z?utGkITKJ?^a*x7Z_kp?Pf*bnz;zu}*+Y{j*A#t1coxw1 z2@cM+Ag<`+oh%G1x~tKS%X!%|e;Pe6Yf+YnEsb*VNcu=Io+ic>GpE#-+E@|&+5#Eu zMoRe`1*Wg9=i%X{*7&Rif0GjR|3DQ{q+hYV&eGPdxX$TC9#%(>R8T;-nN{B`t&$P-UlPSrcsc)Qj4S4k(PYBHW#BWs^8dZZ*LDbBw|Nfdt0`# zrQzPmM_Y1^khrGN7KE3nX?$v&n52M?wxBB8+t{+E(dIU`+R}|J`YF-UHYqw+*gA(% zCQkLgVzb4(ZdPioXTB@_;aB*jFO{c$@L-Z|gnvEA?E{GG0n3#@*a)eVzQ%km9S z7*`r7XTRIpR=B>z=8>(IqDz6GIseJWYTN8+a&uda+_+qP`A~+QR1}hu5_B2i9)nT@ zBI_f_%e1A-%S%iRKZ?8zu1q~F@0G>pwbet$>&v0D|6g^S8b5Lid!v?9UZK-*$!bp+ zUCv&FVSS+Wc~=m%E4mW1V`}@<@VjzMX`d2ag@fT}dd`$7$<=_;Ml>Y|uT&%A4M&)w zfDU#`WDiZARx=z;39kX#KE=U1m<8BK-0k|=VZ+f%6Gkrg%2)b5i&v`fyU^kJqie}- z+!BttmO7^SaFupoAJF7e%xUTD>TPCMUQEN-Htq2Lup`mCqZd#&{hRMD5?j8VO3pi} zB98ZMcH+Qo`;`u9n^rjp8ak%6)zDSnIa~+*!#juTf##iqqNsByaSR8W5u==+V~7v zOJszSSh-`Rww3x{ug%OAVYjPFhfK-VKPyGer~x?2XLh%(6t&8`e^HQbx9%&lAdZrx z>`_0Erb@)R0MB@WZHdSm!ai-P1<$|qqT5W+i|t0cs;xW=Vyr~bJ6ed^@-$Ystx>}c zloqs~Xb?WEH-=oVrMF#=k;mv8EDf&bMzMl{5^>$>RSSu3tfjrvX8821%5^ENw_l&Q ztpPhi!YM4DJC>m>qgGQ;pw{HFq7`&qZLQ!`tdRs!^C)jQ=c7>&`?J<{|3Gvv^gPb# zN6&kV=p`o3eu(IaZURHfUF``t?#2!h#M)&DZ^lTs_ePpIEuVM#BhH+jHR1gzGpAaP z4QzkSXq`D{4(ZHQcMBH2`N0PRUn6Ga7Q9Cz4jpbV*DZFol3ang((}MshvymeGH1y> z>2<{R4Z-HjHUn%MuQR&om&*d&6y6Gy?~99`r+oZWOx7T!Bk8k_z@6!X+`(Sd0r*#8 zi0Mk}r-1$5Pc(#$H!PVsGWi@$M26)0Hx!jd|!w-IlkF0^Ahdp0*7} zQvD=bZ@}Mo`FpY@{x^hoWU|HnDsny5Wa|`y((i3jYNV^TfBK%vsf0SUxav3Lv`=FP zqz|STM0@<*i^Ie0Dh@?=pWikPVg<9yVX&KNBB|3pyiGv-^vSKoeRB&O;z@?M=G)k5 zAo0XJJ{><&F0e^?w@JBF>dpXE+$jat9)Epnu73JmE{d1Lji1sR%LsQ)XLK27U50V zBHYM)0qISFc^3kJ3A3ZEXD;?Jb7YDrx zaQ4w7`{waA>TzxUcdP$}57|#`>o>rb@b}u5WWf8D-BfBL?LX}v+w%zGJAU@I$OU*a z9aFipw?!_)jW*SOT-}9>i?hu9j+qykd9j(7n0YB?#6jMa(dx)mx%${_b?c5ID{DUg zUoNY9KBhkZUq{vIZ4p8F{4dL^RwV(6-BiQp|7{rdGA4^6FDc1eOp9?*6{KHcvZ~+16mM=wWk*nW zBg^BBlGO7ieV0ZQNp@uCvLjC_JC>Ve<1?>-F01T_P>+`_rFUtk?0GPM`Y}PwpH4uS zI3jcmgT?JY7)I{E@`jP*0sMsCiRG>*rc)Ix;sPYTjB%7yb0*zF{8Jb6F05kEk^%fsm7ZkPX=GIcPgd3P^>mNvf6)go)B6W0*Z)&$yxrR;Wj(Zi=Y!xH}l&xm76 z8O4ZnOwsM~VzpE(9+F+X4O1!>-_w|~A0^|8CqPoMknIVO(t*i3A5<*V`8djX>yV)I zc6pIxx66wtce}jmiq0r4>wWmr8{fqWyYbyI-^!e!v_$d!O6ux&WgAbes;{T2xrNKZ ztkmC!_^#+)O$PJ<>!)%^BlKsQ6}YPeU8!4=hn32e8l8(9)npFi4l1BhxR5eLxGw9nZaKnC z8Ly!9s{O|;>bk7p4ws<-Z5UU4So)9Tj z-Rgmt_yD?>a)S7mxYb-odoxFI#db?$lL;CVa|k2H=wKpVyqQyg>)*_I?8S`TO{I7K zo$LImB>9^;x+8u!O0z5cbr&-c8m~p!XiF91QWae)%(`$d8#mP0yH^J8Qn#1RSxU7DM%g?It zTUHwiGqex8qwDuMh9z|v3cq342@EU=o+p;w(ItlwoZ=l@(z*}v^X}-n8A`dMDr>e5`Yp?5A%F_kGL>iA+QDVx?(ed2amViOispHdEJ*yX>Wxo**+{GV_mS{s}YMpS0<$c=+uGPBTrIv>JF>cJ&2J z-EMG;1pY=7cm?Q!1KFO$D_z|M2N@Y6DN<>oLn%o1n64wv!Zsw#QSR**pb(-!y{oGd zR31v#qjqP4QEAk1XF~C=ZUG+luI|gP=d!OtdGG4_@5a4C5PaO9t9fv7|BjijnfX^U zUpMm&OlEk0!-{swnL5f0SV)=0yeX^tXH3mveh5c3!xNNQj4Y3vN>V?IaWgzaW?1}5 zN&(F#DVhGa_imiB_U0x2yK!$3d9RIJZ>f4x79KTgkcZErv0#Lw|<*`Yr zz++=|-Mew3PaUZ2e6lBxy&Grc(YtYSxOd~M%>UAbMz!z88D&ON&HX9`*l~Q(-i!v2 z+Ry(S{!jAv$2nfSnurx((jxyHZWlVeb%ylutYTB&_ zMJ6@fq$Jh%@u;SMq}H%2r|*GM&9b~|R+9Q^PG9viY=)+$b_#HPdwA{bydO~J9xwej z(3&BD_MkV=T199)4%5AX)`<(jM-_Fvg~-oAUNa|}xty7k%xp8W-OLWmX!p@ug5!^} zhCh>KRa-E{pC5}q+^Qrf{E_AHM@j1V!x3MAHrX!TKodx9!h+nS!j2DEmX=q|@qq%o zY;T~6SnnJ`+1`Fx!DO?GAoz*W!4zCUJQXu?-M%>sk<@c&(+DlrGV;OjJzT0Fo^BYH z$7D^QKn~bqMu+B{9qnAIs9-L)qO58+rsi_Dsgt>#M#D*5K+NT2dE8a1y15+p<{m!F zWnO>P>4rX-?*#5qv{`Lq-L>solxZV(u?N}Lk%2bPK)t%E+g+t=gPf6TbkGS-v?-ANBnoU13m%lg176-gLPRHqf)8d_=l?aX2Wx(brFiwsQ zo4Ja>T7(u)F0Bg4&DDBw`E#|xe-o7x?vu~e{5O_XBaz-%nyJK_h&6g+$$YD6ms;VR zQ^wRAONFo4>h|7Pnng74(WG5$f|*zWs;esl+c(x5OXky_u@^nnf_EhiE#E%O?2V-> zIP6_{5eius2=2eJboj^Nof_jOK$JbVq{7YYYeKX>22aP@*z%T+uU1uHD{9|T-&#`M z3!a5?9(2Un7+yg&)jzB>>RU^*NfN{+5O;e5p|_TXNr}G8D!$vySlU}lV*99XEtycF zmF=dIiG*bMGfO>!b|)%a{y37si~|30BzFz%93rNYz6MSw$}EX$M7i*rC~qlIK6k`t zZiLQp(&g?RSDBk-(&_N8S%<&y7x-^!jJ}7o&ENnX+TC5VU3T4EHG2vlIpC;}x~#gh zHPEN2P5o>gH;-_a-P(286@JTZJBq`CZ7pI&Yrh8VFY1qB9>j8zQKwm!vyK&FhdCenb9QAwOfr z&s755TKo+sN}G`?Wnp7D1mzH*{5LJ~@9xa=%N?A9%roAqF5|*qWIS^HZCPYq)Ze($ zRz=<@L~Tu^Jm1{GgK;?l+tm?J_zMEgaCPUEeA^=PwB&W=o-$&&x6iZPu`b)fUt~LS zxpyeC_RFm{oYwi&B5#fe5}ng@dB!`}WnB1+jCIHOb}7CYkK$-F9UCg1FKg;UK3mYx z7=A#-YhZs@!*F{;v;!-(ft8NRUc@_^AP!cy9u!{2z{y=U6H5DoQa|f&b}<5XHS=?3 z?q=ra&D`D0FJQW6w+Al211S7P{+_M__#&~qK1t;{iu}0Spv{%Xt4hVqg?J3<+1C-Q z9DT|etEBscTy{uIa+o#$)Prq+n`oeGN(|xLah-Ld!a(vi6)t&S{b^BDpTC-1O*(_w> zuk>PM`&7d2_Ngpa>2Grw%+!I;ev`?tLI;?|sz!4JU<@1m4l(L-z&+eh+;<(ue}JWJuTTolUK|3#gzy&kAg<8y$H^0FOT7Ei5|y1>?Mj( zSrLiQ^#?X*w|opgbM_~Q^Ma8vjsP~J43q*l{Z`puGjJu0di!e1!Zy$?1308J)L zCt!!+3f+dQIZZ4MlUU8EJgd>^a3c7(@Bc)DkNWY35>x5YO4LE+RU)>Q8?txU z50zij#P*lCqkEKs7sST15fc85l7;h9$OJ*&6ogOGJt>99fP`1wFdc=*;YzoJ&1n?c zTuJTrL}-`+4Mi7h@>yAfmc{JjcqLxPxrI2Ij~h~LR$8|CLv$pdaZTO3av?kSC-K*w zi&Rc}R%Z}Yo|PlV!H~@Jr0-cm;@OpZXyivb2A@EDR9`S1`CnD8j=|(Uzz6gnpzPQg<@>`C!k~i9nsG6000nS$P#U1@SK=f(+2l;Q#-(SnmfEIlZ^Vaez zaK4sTJ^h>T-`MxEZxcj4EkL#B_aK7#=K`Tx&Ql4CYDvC>pV0HMimH*1s$p+V(NWH~ zSQd%14uB%odQ{C)Ud9mt>}Xvit9lNmcC_wO&Fl=3L975awPbns1}hbtTEm`a<1pjW zUdG`QhzLc4#mr&UPAmjzq)#By&@*}&D=roWM=)c>{UZ2kF)&tuh6~xAEE&ZkzKJ6y zda`8eIb^8-n=I8lur$)HkUg+u)EQMZZ{ieSPnI-+=Eo;>+ZW<$rkXc#q+6xE>JwmT zy^K8o>@ohHjH&888EYzW##OqZjO&*W#JDbG=;q)-ye?Ov3-Mxb7bJ+UF!M??ziZ}I zm^AmRv7(KspKOS~#zL>f3?YXh{x@`5HpKr{4vo#v;z);h(V!vzI@#4rF*U?LNJ2g6 zCaCI6_R!={WJA0Xf#!Fh(GV{h z8F#ZW{>8uKW4y>}2w!mF!`FA$6U^gtnDy(s?*Vgz)c0|P;%hom6@DA84z+3KvaQ{2 z%#r?}4r$@{kc!^gHQ7xh%a>xgBZzO#5#LgWxbPQa&i*bKD zf$>N28^a024f(Xje8vGL3cy#Z6cFe8j@Y~E$SnLu z=9fj)oJzwa=8<<3)t^T`L?hCU#&~7!?P&ZgM}A)&^1^S(BO#|w>fZCaKTrQaUHZar z=?@`2JTz#*L$`hRAW5Tz6dRSE9N!~#_zJ(_J3{oFj6w|2G~tmw!i0yqQ9Y^u)NlB< z&n(nYNXoV*-IjBwHIh>`a<%-NRIXYc!{s;U!f%uwE=qq~%$OghDtKgS1IjzIFom0vn<~(DArfVJk^pU`nyl8XpUa)2NTA`kgpEP9#V7 z6S#c33%}8Qr08BVh?&4Ty&+_4s$}aI0A?TD5WNT~y=@KA3p(1<Wgmy8?j-&Sm^3O%A^dnkIcd|&}JQ?HDGh~|TmTT?Fbw{O52psr5r$>VLw<^lc zC}=bLc^3B+9_7OFK9nXe;V1NWSjF5(K7a~~Zlw~W`Ks-al|E{n6@C*(|)$D%qfa z0vf)I(G|UdX#?b+ap+6zU$E0xl*J5Y%CE?({svPse||c@Q+!8IM^KVZ3@YCED%o;36`rTrVfIjkMW|x ztgfu8P#rPIpD-gv{&EL%EQe*N+$}O!BTM&kgyU>mIeG)oU!wKXMwRw`FRsKYZG z>sj)e)wTkp4lmoAfLayRtHVo@9TP|5k8y?>M7FpZO<8_)lJw}wveT34!W%v-T8%Dz z0nWbLXZJ)tN5hbg+FFPxM_Tf;P~XMP)V#DGa9`g--#kyIiJ#8jo5M=n({KL8oxFb$ zi|m5eKee!a`Z_?n*56XZezUz=VQ~54l^Gv&XTnXK{un|R=nU~AmZ>vHV_uCp$yL)_PT1YGHMPwv0 zaKA3MieUHKu1*Z^eT27wr;L0DC*81(pIWlbvOEfOOFD+60cS1}9xvyN|xV3f< z-UB2xp{Zy(_n{+gQQY|*bN+$;VOQ?Sa|d`F`~OLrTK4}J2t8_^BKem9-4)IrwV~hzCG1#K{L+O5?=}#Z9#~%&EQZ^l)E;MHqwGKZjg+ z3<#(6uFCz=P+|um%_|L=0VrZm18N;^%P0<%s?bs#rb6VD#Y8xljFCwn&YKKE@EPPUXSq;xt9 z$Y)(du7fSj3Ak?@io`CL1SKkwZILUF+tzXahlFRUPQqcuMN6kRgJ;YzaB&8YnS*{6 z{#+MQQVnQ7$=^fb1WpNkTfc75Xm;|_WYjmC*HlZ~(({RJ#LVW9awpvwLA70Abzr^O zSw(}?oK;lJ{H&sane-UU^>ya7zHXV%Dt0LE*idEt=e!^mS+0v^Xi;F#N-5A~WZ{;P zZTt3&X^xJe4ue?eYWj#y08Ekv_b18I@Y7jL#wvOc`2Z@+9fDjz09U}9m^}4zKc9%P z*=p9+k63)VdfrlmmkwL>W2W2^ErI58vniJ<8>=}L!~9Db+N``|Y&VA}$A+sAt*t!A zu0S1YUpSk-*#9<7pi`HuS#+I8wyU)-A#VSh)Ovb=WvXaSi57>FDS096?i-I6>4``c zDL)a(wy7(%;fcEl^N+CTFozwB)L{r3 zY_F9l9hgilHorhqEJgheGd;p0TI}Qs#qUhy)8}C0gB>!`R8V~263aGb=L664zH7Fz z?*wc*X;M{DVNZ`*sN}keZh7n!-#sQqhT46+Gof&N7z@wS`S3`5(1z?%_^<;l@}ux! z{@-nhlQ)IlMX7je%ErF>!qS>-%+?A+r1pih8PnbWDnjJYWTjREaSb7` zQbs3OXJ`j{b(NbP=pElaK0DB>JG)#d$0swC*46g-ApC`D`yeA)0o>MBmF*qqwb~x< z4)l&s5A==;+Qub(m}Ff!^^+$e$K15^w#3=m9h#2HqiDY)$t(qy%+i}Li@544t)*1c z4aT95BCet^dV%qADYBvan3j_1Iv+99Yz3#RwSqGevK5>>^M4Er-ORCr*N0sraHa&x z^HLu4GvR7m&O3u# zfU|KjJGaHnFr_{i$y?yV)>jWP{ONutZ+)ds${S0YN)Ny?cW!oNf|x_>iE^VcYc(@x znmNnN)iIH`5G&$4TUzy_%pQb}*~2GfRae2(?BS_&_8=&;2U%Xfs3arL9t@db@n;VO z)Nv)7J9y`2m2pjZx1g!cwz

g7_wKx>{fNC!dFh1LH5!c2h3_*;JtqHzVmBEPo_j z3%`Tf(!+I3eJJQDo<=EcHCewjxen-cOHZr8yX>+4e^} z8OLhQE)?MUw)h>2uj>+ZCqVsP2Y1%%yS(2PRTnj~xdQ3j8On7CqAg};DA&h}SRBY> z8Mt_M!pwd%7nu1;Ge2eKdYImc9-Fvn`XZ)zM|zY8+l&ikRoBJTHsjNhi}S4-6~H#5 zEKe?!s_uilqbEB#xd9P0yBzK0q-dA)$ad1>PEHy*Mn}!b$pW06oaDP53MBzI_x$X) z8Jn9*e|a}5pLhIWI2o3zxqNX_IkZgya(2cR2 zN;K_QFjK7;Bdr~Cyn9O*aTBa!PA#8{Z&PYYyD1R8(zLlkx{~d&isRj^sY=bo@ou4X z$GaUcJKo)B$GdY%>yLLE>TW~L8yMi=bE-Suy_GU`Fn7Fr3job}`=%CIJLjqSmNLDq zJfl=vSk8`jiyr2Sh9%w%k3TooO(8Zn*4KJ(ZY)k~|9A)4)eSLq{mHK+UOP}+-lqUW z%~xf6@}+cOvbizWpSa`QR7ub>AlwfnA1&vUHw^6HT|_$Gi=>q&t|xj+^&Gl$&SL~3doZ_zt#YE7>^nN)q6g& zy@xZbbj|MJ46gZ)k>#vcl}M;v7`czIzy5r-7i&3L4mEqR1-QN+Iur43M&{4sU*8X1 z5A0_C-kd;{srG?ksPyr!ZXb#?(%NWXmULLJsCip|CN zW`54h-OT*FnY)|$1``Mik zlrc?~$9*MXOhcarlPKeycf)i?zeK3}8n+j&8r{>} zZ(rk5-O)XPn(n9^AErBs_E5d%9kpytck~Fjo9T`UyVD)D@R4;#Eof=Fqr48Y zH;8!Sz|4Iyb4@huE7zS_-=A+~D95AzjIdLr4>Y49w`5Gs(@pA+& zAA8|9>|8Zoo_%2uA4xQQMVDQCMGxYy;Lpe(b|&O#;a2?z@liNkh6eQNsPJ2cyOSYm z00yn8qq?&miEyuDxMQ3_T+MT^ATNi)Z#jHHMKZmD>M^7l>S`TR3Zk9Zr*Z@yE6iT< z!f(kJr~DpU(&U>@q-|49@23-<*=1kwFPYhGI_sC@XGivSO87$K3lTcC8N~EnrCP&v zSkueVsfbN|sHdRrP7JX+u>4L_-a}n7qocLgwn}|cuJj|L%4Jd=IR(@`XusEHJ+%nT z&L~Vrk7G0S{nm#c2Lk%=S1B;-oI`E!Jt3#w-3eGd5rA#ZC11xym;O~Ow#5|DI{WlH z!l??46-So@%D1#j0u`_SGBS3E0+)@NR}i0Mm`*lRneiNenWtbzd?Cv=7Nq_)!t7P0 zV)ptCS=Hk)HGBQ7rWe~=2^GNXRhBoqP^!Aw>-?(<`r=W@DZY4&G?~^G*y!ZkXXuxi z99VBWSIdhIq{gkQNmM^v%81EMmvh+p%CL`GO&r-uSHohf%Ct6<06ZTajeTdfx zHwM<+99V$UuNI4#bL*$?wjIb8_a*sr2-Sf1ZK9=g6dQkYO#V(IDAnzd_JkJNw%Fck zS1q>BAT(QS%blEyfeI{U_PNm%!g(q|F>R~<|I%v(4I*jkrgO6tZlm0swox8lLHq6D zIO)j2j<-UCW;3R@i5`CwKMg?Oy4lXzfQs3UeA)eh=gS=nUq|B%mMEpgXhWt4J;xWb zYur z=hhtBl}pzgYJ{#Vt;u(YpO%FON1jtzq)Ll!Gy!^WM7Gx}SXo-#nj?Edz>)bvvB5b! zQ+G|_=$Y!8!e!4fTL*|eS_c@LvfWL2SPs}dxR#;S6!+j3*Ay1uY&lTM_6Yw$MQTr? zhc;Qi9?(IJt@wNE0SQ4qr=8A>o$gdxRGe#J)s!PvIqav&JiTwvBZ)ZuTp_9K@I6 zLUY*6%gnso%qz^i(#-Fgc@<{#yS(2YWmi!Iu&a2Dtm?&>+Ex4=HLTkT1!Y%JmRGw< zQopO1>H>)_@mhAilO<2OEU?@x8-H0)KvPb;{fIfGiyzC_+f;h_^?Z#WGCh8_l%7Hu z9Y3!n2!1k^z8)8v#b$ob%$E-Bt`RK_)Bf0HmpAOVB{UP2lEpb=XR{3UzX3s&-P&M0HQsZyA;xu+>cf4!DvYG z_F#l^^gWoI$of4PL)~qtxfu=|`5w$Y%GAN!9?abUY!9XuSusk?@b_Ru4|_0%CB74n z-ye>)2O|z^59R^c)mt&O2SZ7FmVAlgqOS``doZ#+IZ(P`doWhCSX8HbFe1tJU__ML zgHbK92ji$zxww-LGu^`#hV&ccPc6)%$3HW-RcseRoz}72h;fx@<@LTp4ll3Uk{P|c z+LBrJ!e(8uBt+eV2zPhu(FZr{GmYhB9BuO-G%dix`rxn8=6R>CbP50ZK3MxPxAXV< zU{zM$ZnT#EJn8kbb>Jg}+S-f;^B`_CtId2E)2)LnhPMtX{I(8C7t;nU7HZO^KF4J< z@>*K){bkTFZC_NZiIOfGMVT$59n?*(+`(Rvn;z_yGe6jyXJD%;Z{6gUHg1jmb5fxB zjOohym@s%{E&Nv2t@AbCqO5Ggt_PTfrZrgnvN=dv6lLk{2!N-9f^3lDvpRX4C_&8J z8uLj^N82xO`Lq>&qivg%wkFdD-`(9Kz^#IL`lsvC7k*2h?i>A*ShjB@$A|43E%|@U z{Rene#q&Ro@6An4Is}jaQluz^4kDom(nMM)0-=hC1wkYl6iWzPP!a3}R4fQ~1sfJ@ zh`oUoQBgq=5ETR!RIuRhH8Z=jCzl(<@B8zAo`0Sv_s)Io?Ck99>})xE&O!f=yXTms zmf1JrVtC)^-O#=fNtb;iPEWjV#7PI+HzM0*n7(1#eL`x>e!yCgcrqb>uEVF8kr_fw z?0>Tvjwds=n0hu&(#1YSrtrNH8&Tcx@2}{$>`&2s_w>i@w-NcQ4xe-BU-0Lb{J8<2 zq6xEwH1WS#lU}3=HjFTFL^ZzV&rSHW8%E!NbUQ8yd}uTCZ{g3a_>>~Q1r_!o|C@_E z+4@kNKW<|w-|^@7D(iDfdMx%{D>Un!1w;I2N~i7Tp9HSV>T7wW+(Y z^NY5p`!D-p&WqbHaE5FblI;2v?{P5hKdIzrBotxN5a4x-;5Li!|2W3YX$aLA$|*Ui zzgOj_@0bY5SuI z)TV1rP4R8-5g?_p{jra}rvHRb+Wz>OM)vbbyAn#k_6L21UQbN9Ag38^fa4YcdOa~s zi1q?Tg+w9xF|zb`g1CygrCp$%t1jDwmex3g3l_ZHcN700{@gBj3?<6uN>i0O-sOL* z5ppNlEMh-q4!2ZU;F^inB$zQ^N2oD0=Pj5xlhEp~e3Oi4H4fP%m=SRuFms|>R7%P1 zvK~#3nH0_!qn_MSAqySYz--VGYUUA=<&fHy4jGkSi91MzLvL3+?m(KTQZPaq*g7oP zmuH}r0&P9gH*;eXyom)z8;PMBH~N=Y(POg1I4Dp)dt zhFB6lgffy!(($`w9*!L%V!aN2i_8HMO0?u$pmvO>d__yJbL+03v!E+|wyQjOHOQjT z*y4)cN z@@FQ0;y%*kqQ$5}=Ei1N!LlhTCGW3NdM)(be>nUCVS%+`b+B{n!-9vkQQh+oGoUTq zYl2N&y+;TT?oW^fj+@*jLa>EJ2 zHDs#{?lqf%^i=k#8c2dqT?!|~aIhO+c-|@L>OCU#6YXw)CGZGJ30doa zT|DXfR3LWoYSY*B!|_SGcw4FK@8H5I0ULSr6|xuQirdJussvco1XJ(e$!INb(6#S1b|sNGV`ZHNVF+-^r8$peuXj5`GQaY>$Y=3jqz*Tk1$%*`|_E2Kc`RJZSQxL90OqN{6y`Hl^;>kxn`54F| zJiMa3!@S4w9k1mZpd%}O$OdTtcG-$`cvgQGy@eY5Tiuw+*6kn_I$MX-16uUhB${WJ zTcM4(NA!?uv#}DMf=|XxM~jk+<8CtR)La1jN*Sm2u!}|ZUa*C*!z-}mXgCzjnQ08f z7mtl}@9Y%(hkTu!Fy!mW<}u8vk7i$QfF$edO(6m|Et<|q#3OsjfpnN?p0Z&w!6Ce~ zAvol>d`gq>ZpS0AXkF4t-X$ZW3Gw@h#9^h4G=B+?DEUr0{bDzbXDOOSLkp`mbt=eG z;$Vr7F>;WBoMnyKlj4F@5rXPtiYX*@WU(VkiN|qJX>^*C>;Bon>Q3wA^6Os2efiMqUWxft zKUy~*n#v{Ab&KHUxZxkG6TYb5FI0I;mgS-g{jHrHyFB#ob`*Qjs+|q9zI?+-Oeohd zbb9=dt>V@^ERB5&YaTxt@vsDd@R&9o{qYj~hx$4BW~iU1n(DB52KV#ENW$89bW%xE zP$iF(Nl)kA#J``U-zVU=Jo}5{;CC4I>BfZb@oo2!NC-x@mh?5f2|j6L!~IfCH!SCl zM+q3&=qvQ>FUkcu+aaf6WxN4y1&%&hHK^0#o(3=^l{Dwi7W~ONNyKJSh9D++2)Y+T zkcikHV7E2=1lW+iLN=sa2ilN}r9gt)E5Lx8NBFZXe{!POkV&y2lWarW;0znm z@BP8Xgf?VVS;w#qJzA~}sak47dj3Kh{ICuDP#z4^;Y;?G_TVZZt%{Z*R=X$AcUa~V zSx;Pk3HT+{b#I51u5AjxJYr^<8rdtz5ap37g^BDm>SkY=62ncpPY zkcj1aJ4hT^tu z(i^{<&^xduYTxXD{OFq(Bu%{$*Ca|i<7ZNde0Bm|N}2J5YkY=%j(;DT&rt#Jxvumz zy(2!!=eCp2ZDVUv0(_3XLOw^i4)i%LR@~}XFz_}8zmYbqvNVlax0H-)Yk;Tng6zV; zaUK?lEL`EJ zbRDBOoe|_ciVx-uJ!7K>SwJ3Ea=aA9W#RD$<`;h6BQe&1cPH`uk%YIY~ZCMXX1l&>tG~`FLVM>cD_9M<*(ia@mZ!?O6WzLT_f&~wScPZ*e z9$`O%iIgV@M=Za845~!gG7^)3f$yGG{rMCeAX74l}=_7 zo*T+qy=>M{#v*Q)3;v;Y;Q~wdal5GGB5fB^LffS+w+rbZ?LzkS?ZUR=cDc*83&|^` z4{nzS%C<{C;I>@~KuWtLnUye@vlM` z-=r64nUnF4C$^bvFe7%0pR>S{6OpTA1)28LTb-ZNJQ_EdxfJztkFcMQDa%$oj|6;= zfSZ{r&yB&(_EbDWAH8357I!EAC8oUD82U@`{)yzKb4ckA3%7j4| zl~qa+Yj{l@8%5=;wBoVQL89`owBiS$HUH>17gkFvUZKAcxAFU3{k@ZaZ`R*5G^7<5 zJ7FD%;&=N@Ei$Yh!hJ^RRK7YzDpo5!kLbfn2jK_2kD7wLkBIg-Kx`{_fQWNLB8o#I zs>g{~P`-!@LLx2G>fM(?TK+j}t-HD}OI|1&OK#%+peY(lJiAaarWX4yPcwkj;`z?KI#z(__7|x9 za4GEOCG6%@t7@gw#m$FNO{$fW#kk88(Y|N-B4&m}#6lvf$BBp}6v6$qG$dk1NJNb| z5pYOrr~@i;QAh-y3`MbvD{^>Q5lv@=b8=^GWSbRtx}v544I+Ju`h@RW?Bm?G zp0j<6#Fo+r_pO(xZ{a#>l-IHyS=LA-@^$fMILtB{KT57=L*nj2xHAJc04N%V+7vB@ zX^Q>^Mf*+r@oo2+NC-AuPol5sqwq-^t~+SGiW6pNFiOCND}C*+inAXzld58?l5#P z+x*HAt~%El&m&Jp=8aY8^0|leQUFri>ee40_{+fmyZHYU|Bdm#gs!CFoAAB(PlCzX zUgy?~u$K%?n6)i>a@pWn*K3G&y|ggRqi|lXO-G7qKc$eVZL3T6zk2 zaO*Wb@#2wp08T~3%*X>@(aCzXw#(})?Q zeNh^gE~f)2NlV2R#Rh(emmsBQ0><6AF0o;V(UK|1lT>mB^O0D*v4%fcU@8*xn&VX& zxkdk=1^Ap84)5{Nxd^`T5<_}pIO&G#&lBlu`l(4*J6*pr4olsoaq_6!|SJJj7 z`5|S2|0F>Ootq;Zm(@wpv{I@DB8lkkD~8tRQxaSn7lUikqai>JPkA^sZw$~TZr}2s zAX3BbU65|kypt%E&MXFoCTpG9zLSsy`_4n-;VxwSC`v^$CzYHHvZM+$+8?9=n3~S$ z6reV(5*x6{1C;?3VV)i2;VL*D;h%vVY`IJj)RnUEZ96fQ3d@~CU(?URCs}S6b>b^n z5lVpZ=xcvfEV{&alnZhyKn@v?@T{~VJmWN@SzYgh#aLF)c4%o$*9!|}x1eAQ+*>lHkeJ%)T9L=jN49=ci*q%*cWVL5Q{3xmd zHe7}PS#lUiJdPOT)T)d&0%_A4Fq!9pBSDHie`0&)A_v>E8VIsyb$nZUQmL?K4H7!N z34V}0arn*IlM-N0`r2O=!C34`xge(|P_ifCuxCYUPx{7%57MF*I1aF9ZGdV|R)9-} zJ?kJv?CIguyd!{?V^7jJnpamCoIQ_Ydk#gC+H)W&Qx9xde1a^g4|0Fd0H0HjWONWv zo7SJn!5%08DfYx{4*q!*a_wn{eZ;m2Lso-^UP*i$$kFJS^zGLIiu%H$l7d24w;Re#$zaPe$&7Ym`9)^wIdXQISf(06m+&_zgrfK<|O==;9Zl7@g^Bf7M>jaFhi?j)4%mX_N3w zyM4>jSWJ3eTcnE}Jer!94>W9t`ySToH8IGI=Cu=s?nC-^kI1EPlLdQBJElde7HwL! zY25)oOp2L|&m$Wqn+7wCxenixaiFikkn@TsPMJWDS2cgdQp`&jd>RZJVqRz-m>ggY zP8imwC%)I2>hqk4PIje2B1X{>FcI48pL1`4~c4 zAf3iysA<+?6QNIr@S(k!pSCcb#Q!h&os=SDGc3euB(Em^=^We?e8bH4o}gZ@2nRx+ zd47>G_hWVxm}~EJ)TqUdx(DZhCu6=`1>4sok8)gq9Fd2K+KSXY6iQ7ilok<RN6q+>EeRA378U_EdIW<3u63Dp{9h?EuYyVM?SjJfc5;%fs+_)b);ZQj7Fxxrx{)Nxu}1+9c{j^-%DK~lmFH~VuV zrnE`~RFghJ1!jzvo2$C4811C|hUJ#Xt9qH#w~m>&-I&kN@^#E@NF^#T4R;vR?}P}j zl-(|M&sRbPCI*X>l=|kV8Su@`cz(B8R00h456oBdU1@(=n^rbGpp{s66)3S##*M;P z+3dVdb+H=YJ!EJj%8?q``m^D`CgyImIeA@RinIk!0Y&mEn=5S@mCZ_6Xf_s}70ivO z8~H)5Im5PF3-d*Th&gQw`jAYgr6tHTlYNUIj+_TR(?EzH9eB5aMo?6&ecnqy!MlHAvf zg3c3`67}}Qj`|60B-q!e4N>*Yu`|Wuxn`gG!Jk!pQ>fQjI;BKb4cIG2iNpJ-~r8re942pd?RtZz10ix-*+*f^lnCZ-75 zQ=h49&WH9SrK33>cA?TnnbXK$Fwl=OkHF7}3QTS5yJO81wR2yzujn@e<%%v}TK&eG z>OToq+3eje7O!loekD2Tn_qW{U5+;0t#<|{7w0=jUSK}i45$w;G<5O~EAQBSQ(e&@(deq6&T0M-?GTdhw9<{NFxA2r_prC2xgRmyR+IUVtu z;=v?S6SYhS6`1=LJ9*EjrkkylDW;Fj0WX;?d`Fw_tR<(IeU(LCqex);WngYstBteN z(Wd215*hMMTSR_}2l?hmv>Q?AWwuvTFavBnXkk7FMKPj&Y~O=12DWNp zUb9qS?)lMKZ5rg!7%;$$fStuV&$4kcFx3u^*eLM5ZI1z_<)za4g=SkP=_x0g^XIxA zHL$Mpp+_-RP`eE<)nGM}Jj#r)^{sFAtImy-dfZZ&``B8JHxcHjP)}4(4KP8-wj>)3m-JcjbYJxE6OY>HKst3D?>=CiGbW1_*2xgjB z3NjJ5FSbI?9Mi5_#LB5i2y*>%r|{fsdYW@lV2+uFlQ2?NPg6`Pm~rS$giJ&f$M6L? zmv?t%^#-y8*!yU8;=yx6OpK9D7_A&~3739D%;oBDE@Pe^h!4Uu$Xw4lFL_ybCgT0q z3(YL(bHN`jS0NCp*G7ynl&ip;V(#Wz?5ZHh%c#TKjI728E<97sdtCZvc%C4$%r2HQ z?V@^nSJo8Nuq0--khmf3!&_)=4>+z&1lKcZ=Fd-AoSB&JC?O68+&sK|^ zfe}iOZ%s2UtKMg>7T=q;jO2glkRQ!3Y^3IxxoV%?=2S)&+FGnJzncpgS@o&Qwb#sK zeO^!-CPf}*o%kCNaynryF}*-jO3W#Y%K~*WkOJT=@6HzO5`y{>R<#CIk}NF zj3g;iBk~p3;tcdA;i(zf#z;l<0zr<9>}TYeRt{+tNr{r>4@V>up2iWnH#5g1FEl0! zpYCOvMyf`sz3w<7!bky-YEf#7r_jp8Q-HHo)fuVQ(;;IbH8@wjp&qHpl5Yc#g10BSdA9Q#YwU^K5}{2y#@?a7LcM8c&c$Nn==YgZfT#)1*^b=MSK>@U#R% z?REbN9yy0|?K{lnIy&hBmfTqNY0ro;YhM<9CStFBCi84kp5uU!ch+(OD?{4QsIi>_uG3a;63@*9l2CFmkijYeLd;M)oPsq@<_Ws&}AGMe^B6E4jU1 z#X5tK!RFSa7rFE%7_o%s_N3K}9IMD3N$)c96Ixk#?nru%k*_fuatQ9LfzC%_{XodN z$Q?=BSf9rrXC~r8fw?2;hv*VSfZ2$~gcx&g(oc*G3n4#qu8M^&*S$%*ff#f1bll2= zTocXGqofe95V_QlU(V9AXiV+OOTvsTbA4kJ}*e6X!{iE1*PyPhje5) zlP*Pk!hZn{8}~~w;Hig)ehN}Ox|wkaYASeMR(PM!JT09%W=~2ziB(!ceXc+0GZCE$ZMQPlL^hDBf8J%g=aNkOK2U6mKYn zkDZ3NN<0(Is_1ttXX$T_=T(cmhIu&g6qwhd+nFb4r{j4&x|4ll7seDR>&+-034pTh zL%R#|ezZawwZ-X}M~R#dqV>_&a?E!-1lgPPQ54sQfXwXXc-BT6GtWjVc}ZkTauY^A zv$+b)mSkLcL9SOWmR#9MTa!Dck!Mz#DM$?<$1%@1)ZpirsTSWQ_evwn--cEeWP5U7 zMjlsWSMp$%^A$!k;rS`~H0D{QJiC+6V#%4+9MA6L$;@+Ah^L5o+WhQF-<>>_dA`M* zUnKvQd;udzV#X-QU&#yDVpHKQ4!Mo>xe;@9LHa-Z_JQwjtkg6#=ppP*d zJ`-f3shYBvbG5d)o-;=Rp4|7e$V4+DWf=3+#RwuiCjlW1FTo0$kUVor%2*&c z*Ma^exyGlQ!g4M^TovSWMsf^|Ya-`tAY`$QH%YF+W=_fiE^7$J6ydopl-F3!I4h@p^4&nF7USSQQu?zg>lpbRd%1$FBm|PPdkXSG^ks`Q zwn%|_CFLks4?Ql=mHt-BQbzir1x26tQ@&+nIL2i`K28~tNx2GD^7@n_M%pOyMamnQ zq~RB8pD$DDWKpgt)-odJYeHb>?{9NueUs7vh%ql=J}|lGmSV&g6Y;8A(D zEbMbxq%}rQ;vr-j=NgH9FUhqh8~aaBsM7+k@~bgfqni(IN2)@CHftf=PfQ_u3e zfc`FW8U{D9J|AJOD`mB?$Uuzvg0u`C;Ii_y^rHhjdIz;Q0x_I;2Ag&kX>5_(qg{hH zm}ey75AiGmvLL$)X~C1}Vz&saHsn4+LDBNJ@t zLFA&~7$C+hz`TV@$IL3|%sd~%TcoC!0-<;q#rQ7BoS-`+uZ57aveUpbePG1&K+N1{ z<^&hBoDXsJgAmN4f|BfX@a)9eN_eggZspR?#ZwUoIVo~&a3|-=TqQ_>xi+{vo7#N^ zc0aGe+-6?V{NO<@z3oRhmXGybfmskd4jyA}>k1>`kC5fr(Rw+i&+!hqDR?3~3OO%j zIOO)=IYw$!aLA%yB_kE-v@ZS%%$>n1MiyfJAjsn2Wkxd69kL{Nm61d;78`kY2=Zg7}=<$Zw`K8q-Lh$`62j~%c_g9 zoBj&SuHX;mIZoyL9Q@5Z`xW^m_=kBKDY7R>sz9D_e~OdyYmm&yezo(yAdQh8s?Xm+ zCL`Unl_RMY7{Qz4`LDpFq*h{Nr}CtyR%K*uZO4~{q5zKR`*5dHg`ph$5eXLgMQH)eQ!sV)y+K7>_RZfG{#*7SCIY*^7Wu#IYm#b-N zb1ti~A}v!}#c9|&wM`t-CN-bsJZsC^XWFKAU}UR$W|!1Xj9g<&-)Bxt?aas%ii}A; zj*-nBMW20UVrn-=a@2dzP3;j^`o*coGtUKGU9K6aeHpRFKt#GcwLc@*ws$qXK6OBa z*=UDt*mb180&`R9a3DE2Eb5Sqv=NM~RGualS*A!ki~O!g2aBv#qyPwc-IZNj=|e4Y zO%sQVOgkm6USrcH#UbO;&Sp7pt2ItZJBN{bjuAQg%$aG$akYFv@03$admFm)r_2>o_S^3wT$>kdv)6N zjAX0M*QVXb2#%rgUxB$bZ9!Zu?nt|tc{*rpxhL&TMtqyzo3@0J`_!rrrac%Z=aIC> zC6|`|SlW|}WFIS~?=vgXo@S(zBCn)9!^k$Z{F=1q7?~xR;A3B;y}-!z8dtZZy~xN| zm9s1DB}Ou=C+su((q3WYBIQX*e~ppKU7bD^)8Am^X4@pEB}YlH(bXzCO-|qtd@%o`KpHW7EH8 z&gfjK{YCnM*p z&KITs#K@^y_vz`sF!GVs;_~!8akaQ2{Ws>hSarTO{Vzt|#&u!(+h?vz-_OW)>rwm6 zE$OBr_2pISKX;`kF)~{(qv8(yPVk^L}~_=6OVQUYlNr z5qi4{{S}yX>2(?DrW$^h-hh#{YOycU8!>{XJlb3v(i=0fSN-{`^rnpbmM=W}%(v;y z8Oc*S|CrvAk&D!ycc-^zKL;g%}8&|KSjCRa3&*mz?;nj|e_$ZN{ z(VY<=C9*U6GV*q=lUzCD#5l=^XAF%)YGw?tNOK!n{n1~6sg*H`wn2{nKPYW~7W2B9G z-Gq#3jQH8t#Ec6W*`&E9XOu9q!j6^u%nZCtnSA~d?O$^7#PeGH+vKveqj%^A1MvEG7Oc zFh^wG$w(9J7cDaHWdx5GwmhvfA7JD$?I~?Cmojp?M!)>bM;J-gx_8KYJkIMnXFkC^ zcq*}#+#~ZjMov&`9H03DBh$3q`)00Ue4UYQT8p8XZ!t1a zYcV2oH6w3oEl$aNkCEwGi_p}8fh10{>+Gv zbq{6kX2i$3M>2n9WUkJL9?Sflk=s?DCo=ajQd`^Wsmwna*{%NkOy=K=L@TezjXw8Ju{0DKht|VGlvmBi(8X<7$XC<1>eie zjVt~A%<9Z@zeenJnMW{krkxRCA3L)iBX8Q6P+)$_Y|O~-8pr<1Y|Th-^^KIQHjMb# zQZcJ7BRA??t6o++MtrnslGTBcK>KNaRwqV|QKVZ|XGV5tSwpjqW8_J-&na2m7+I-4 ze_B>gMh;UCpP1E~kz#G-bF%s|;>X+zvI-dSV{S>-AV&NMJ0t5vMy^*I#-x z{eB#BVfKfNyrptxX0OGr`zKc$^KC;qow!q}2B+g1Guj^ShES@`1e{I7K10O(eukrZ zD>m;;hh3!D-Z3I22!?dWsUFm^Fg63zf}JR>Fm^`)N@VJNTu~valG%p2&@+gSLt^zF zk-S4L#V0RBD$}Z`sl+ndRLg<{#)6F|QX(8%4|&Q^f|jM`;R9 znKh!+3Fo-f_VAJlh_4Z|P^l40U8K}N5g+ zOzj)ysM${n6)|^OzKFTZ^1%lzU&PE+zGdTa5*>5th*@)rquOFuZtyXL{WK9*QCWlM z(B{3F+W0ljd$*y~Rws+CB4*e)*B&`qk3FLu)>Y%s@uxX#0wh;pDQ|%4&yuS`p0sMq zvCb0{>G$j;V+L`KTM&I-3`my&@Pns7ggHP=cAZk^;F_D{ z*mt{2oubrH$4hF&ya}sG+--TPqrO33pu7?D&17RnGBx{bT(x290i>S7)JoWDBB*#x ziLWsBFgE@tN6~$Ilp3Fd$|#K0JYGsGjL~U#!OmXdsN&f|h4XeF95H8e-n=b_ zsc=hw1^uWWMT~EccG|v|*=P}#H|oR)w`F0hgQX(oh?UM?_PpSzN+-GYJ^nn`yZdO2 z7!FHH>;I#E@HhNGuuV#Rrmg=Jdder2Nz=bnzgilb-o8>srigK|DPo46g|q)hQw|@w ze2)6)jUTeS=BTCEpgvmgT-YjNPKC~*%MPXff-cf~c3962+lB7pDPcP=gI$E8J7R>Q zJLH6-dt-#6I}wGVdvb)L`(=oVm?`jsH(C1tr3tnVkwG*aY5PoJY{D;2(@QNC*6Pmz z5ffvrZW`pMhd1M~JB$rn>ZsX>Yl5|T#bM9AB$5kbE0p>PH6ptd#=cnPs16@EYO3W6 zYe4<-GA`};A&5^*QNI+5dZSR(^N6Zvmf^g`6`;!RdBle}33+0T3sFmHt>IN8W&x)z zL0d}d)oVq+h}kmVQTJ=B9(lgQDkCO}6pB}OvXn#f1DyYal$AN;YjbdhUCNztztdor zmX@rgJ+a4_{S_(4tLO`tW6p(p@sN5ymwOMeWlZgc-;2Cg;ir!S3tP86uCEhcVT|l2 z)IS$E>WW#8+N9VN#jb>YlA|hSMna`c6B`u9wqPD1EqxK<22tU18}u;dSuXd(O^zCB zG4xQx#1~onq^=R%FFPR9kR$Ipx%JeA^o56seiyvJD90QO?Zd(flSfU08FsYx87M8I|+SIZ2H6;mpUHfujHtPQzt^*hyL+ME0Q+} zXGa9PaGuLSeOjbYpB9Sxv{2Nig?d%Xn7P|wuPfgi#24brH&tOtifj3%7sfonI^QQb z^3B6t9d>)FqmCcsQhy!kuoA_p)pOWW)|>K8b@-o1p026mHOGl|_K zP)GGaloBZ?!;7uQ)^aZ#?yz1X9Q6g}Qj#~P&{3s$ zun%GI$x{T2nAhxRRT%4YoNKLDaSx%i+haIuCDfz`-P-C3VA8%#9&jyPS5vTd@ic)_x7i$#8Dz$Lb!e)*d)YMU36??9w!yeYWH#TwD{f!;byra7@^o*n)g!0Myd9vsV?6sb%IJc zN~t2vyI3{&Mm3nBdC$?*$x8LtyjQBcH&lbB%J;VN-KMF}cuLEdr8OF)*i$OGg39|C z^GWIfg|RBC=?;}QMsvKQQg$qno>Cb5L#Z#7s%`suVXU!IPb)Q2sS}iHdAE~yr&9Yh zb(&H!#2o28wQ|dh(5%b<~eD7##C6)4(Qlr#rXAf~X ziqt}PtA(~GmfXr&x1+Ylb;?&y+j5^$$7*VQZI333%}@N?%sD@}up@w0M66!9cXl^UmIM`mO zC}u`NU9D2Cm?f#$Yr(8FmyY3(;8 zR$Z~rlnRvkLi^Ezxi0U;n)mL@9Cn#vn>5F>np#D%YgO{)DzB>My;DGMB=`YB9CA2z#JRovv8jiLTuqf=4vu)OSy#*JEIR zF1E>*J2CYRPe2%jx2Rl55+numThBB zzPZbebopip+E*m6QtGyQ9rm#;Br({Y8;}4}+uYM#DEQg|@(wj` zIKE85Jn?m`M6hRxaY3kYiWOKaVjh4O%ib`p&xtQ$?kaY%c+k0SPx_aaq;80|n&S%1 zLA!&;abNH|e1DCTmccy+kSEc$Ixvat7mjhe@xyQz7hV5oZPp@+_GBr3Kk?sp5eqnn z+eI84yAG=-THUoaulABP*x=aql~SWhrt*)*oX9!0Km+oKi1`ls3Ds-7+hGor+GBt zNNQn>_jlPs-ov~ndjIoY=e@Im&Q-i8(q7+XEYH9r#8wYyIx1;_F;{SE#?cXTEvTrO znt|(Hj8U&$$dtDl?ZGc%%-huW=@}Ri@8;D1(nBBM9Il7rTKNH5MU2x@AtI*hNiJ?=VK++rxhZ;-M3v%6 zjw;k>aiK=XUBD<_;dzI4Z4fcvBfd!9gO^bgEhu?$!zfe9Cg(D|7aaA#oG^%RTPB;| zkCGj)WOMD0#=Oj_&P$TbybT7=)1Vx=nAKBjC7WFs**9g;%(8a}W8PtG#n*V|5hy%o z;y5>dE*pKMr4vOTzvnv-@?=N&oQ{sVY@MShBCX{zXjgXwQ{>~{FqOy}D-g$NbP2aA zU5nm^9ARs`V#kGKlLiaP{Mp;(LA8+UM`2qX+(J7L+jnqj-d6NfRB+sO7^3x zxpSxX2XLtwB z((=u-@FD6m`KAzNxK#$Cvu!mU8_*oV?-9!s-V zp;}?~N>nBD8D`in+lgN3mhJ!Mx^g|WM|M(xn!MapRyU4**yL`N+d=p@g? z8b?xp#e7Jpc8b-=ajAUvRQuap z-lFx6xPLb*<3}A35xd3mx@7Vvb0j zsj0J7UQgZk-l^C&j31I?s`^XyryX{UVqe=mnZj5e=3$bfvG$qhuMRs#`%I4R!FSiT z%+qq4tGD+;{1bUMsdo-n&#tYWJx^P@vtqSWzmt_3qTW=ZJ^md{U2usjEv8aZW;tx4 z=E!@&VOgIz>UYFq(R8uKutv*WYPBaF^{Uo#j~(p`W6|y|b)-h5Z37+lwo-dAen=U! zwD+8;)_6->YY*bM@cnG(CAhMzwe(m2-%$-Nwj)kqti9SkPy1@SX-?kID;;&CO5Ulq zx=;OTdk4oyj~*3W&R*iETH3qEYuu=*IXY>4*{oXqGt%WPRQ;N1-@o`nms(#nJ-&jo z)nD^n>bF-p>a>p?^@ZByEw%m2S|d6SC)#gQYdnf)LkiYNwOXy-`Pp`tqsJ)6*ZU8L zZNOM7d6&*`)U6jfYD*25qmzz#XJLO$ay+hD)hu+_;)O16hSp=W`b)0%ipHBAU$SCP z-r}%5inU$juzS=(pJ};!wcKp=oG4ZuqF?qNm-k4eE>&GRY8iF3eTS*!sK(Aoie=vH z|+a)U<_HaK}?y0>TwcO5&3uEbO@n%Xb?(g!xuXBsv)N|g~R=rSlZmc?gtUBMM z)aRHfNzKRUHO=|jyEo`a(n2j+wZv)Acax*WuXR+Kdf41w9d?FN$EhDQ8tziR9O0;n zBOP_4V!M?(PIEkf@_5^{iW6>I>TA z=cYURrD#uHH^O0SK6g1bXulkAZcljFfx&+Nhu?nF?7W7}59JbQ5L9;GgW57GR7aO~D!glcWxLl2$CWqgRW z^TkZv2=9~=U?1&vvvqf$1D;%ok#i>V-S)0Amx3yceQVcmg|SPKD)xH^`Uy1~b6YAm z-_*tlwRudnwp7GCeUe*~EX7Pg=KP!Pb!+j@b{TUua_vl!>zoiYe!sQd)ZhUL( z86D2poMN#?#MDp?jz<}^lMpdIXyt;cLIfrT%)8qc$nk4e?6&?*3F# z1Ac-jU401nnR~Rl!@Djp*P}Zg0)9#~T_Xt0-#bv>N>uZ{D1+Jq&%0NuzqL?cqQJ-o zfjQh#IBkgCOPk|ZyzzlkGkW6eHB&QCkBgYP9#nP)<(-CpR03-RreBimctuUm>*SPU z)SP;o^VrRxx_C}1~!SFk-ez)Rh^bheNzvufj zV#HURmv-c~Fy(jTc20GBc-O<9Wrxr2i!Q;w-uIkiJX&EVQ$yh6yO|=%dqIU){U0gQ)hN` zd}a5k+p=WZ+dK|b*mD*RlJ+Q!^@Lwh%M`{&D^=N2$>wxWJ&~Gh3PAN?sy3(rOm%-i zMy6!b4H)&tu>DTP+>yquWNf#}m>k}*j$jO+)9T4)Tpt+`U1AyO%oZW6TN!OC9d8fhP(T&P(;Ug7Yq^ zi#t%5>W?)$QDMH^1;$*4oDQb>KC=a2YfX&Sz`vZs({Qj&&4zjZH-;wp1UbP?*Kgl$OFpbEe|USjc63irKYL zt>3`4<2dUsM|&({KDu@y)a_W^5q0R}V0qWK?q01z9kf0-x7+>DF{VZ zx`>i1T@Nr--suG5i?8_;T<+JXxlkQZbD_H4qvbK zsG92?RYR$nPYH%oT$l}$Rv3?_xLF@v&y!Kex0a_4_3GT8zc|TT5r^!2{1DH?9BLVd zcE%>$E2wvW0Pie}(Uno6aBtrjr|F=R@lG^gQImG1U{Uij*4T1~`Q9CvOL2~ObYARt z7d}Dw`J7W*orn27Q%@*gRbX=8*mv*}T5Z=eb$-H11bp?(WxWt%nYtS7_6(vmbim#^ z-Gw8or=3V`6M64AtTjO8n`64-JyoD`≫Zn-u5hbIohnjyer3n!(tuwXtqw>bzDs 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 _ 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

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

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

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

RF{eI=gCp`63&yO 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 aok~A<-HE?W^)_`9L%-_>s-#m5X#WSf38Nzb literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/NetCoreAssemblies/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000000000000000000000000000000000000..be64036f12fe7cba2ad12805e011cea81b2320f8 GIT binary patch literal 18808 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�Q`Ssy68Q3pJ*Q4?78tE6iEZ%EU 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 new file mode 100644 index 000000000000..a193686a117f --- /dev/null +++ b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PostImportScripts/LoadAuthenticators.ps1 @@ -0,0 +1,197 @@ +if ($PSEdition -eq 'Desktop') { + try { + [Microsoft.Azure.Commands.Profile.Utilities.CustomAssemblyResolver]::Initialize() + } catch {} +} +# SIG # Begin signature block +# MIIjkgYJKoZIhvcNAQcCoIIjgzCCI38CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBn8ROze2QLH/c6 +# GtPhR/BPLgOtmjkNhcq+fFmu16VcrqCCDYEwggX/MIID56ADAgECAhMzAAABh3IX +# chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB +# znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH +# sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d +# weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ +# itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV +# Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy +# S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K +# NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV +# BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr +# qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx +# zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe +# yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g +# yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf +# AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI +# 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 +# GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea +# jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZzCCFWMCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgLwxfLTEa +# f5cZ43nGFJSGxV1AZMu24c5Ln5TdSBDWTncwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCyf/LJa/Z5JNuepgZfSusBSM6DXD1kjal/mMJvKd6B +# 4TxMLoCwxn21TOmsVf9HXQCLZ12ZkJYWaOtCjkfXF8abr9YmnjfXKYy7wMAvwh/Z +# JCi3D4MhYmy5DzVE5S+y+KTBuH4cbiQ85ASomr7AH+8+Z/Ib8a9D2+dWki8UibWv +# dLIzHB2BCcg1nq7vXZ+a3lsdzqEAlaHL94R781l9PoKA4PAPCyu4fI7E3ZtiLvGJ +# wh+lWa/dqBE2J8jxbevUzgZCKswoATpOfZYnfyJj4COG4/sq8lkVUyZs5Qf3uHxl +# 2jaAoRvIqfW4XtZE8N4xIKt9urv/EnBGD6AHdJSTfTnZoYIS8TCCEu0GCisGAQQB +# gjcDAwExghLdMIIS2QYJKoZIhvcNAQcCoIISyjCCEsYCAQMxDzANBglghkgBZQME +# AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPAxdvgOnxDyn4RapJdVAf5LnUuXi5jJH8/S/ti2 +# sRm6AgZf25iWx0QYEzIwMjAxMjI0MDkzNTU1LjY1NFowBIACAfSggdSkgdEwgc4x +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p +# Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg +# VFNTIEVTTjo0RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt +# U3RhbXAgU2VydmljZaCCDkQwggT1MIID3aADAgECAhMzAAABK5PQ7Y4K9/BHAAAA +# AAErMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo +# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw +# MB4XDTE5MTIxOTAxMTUwMloXDTIxMDMxNzAxMTUwMlowgc4xCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy +# YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0RDJG +# LUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj +# ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJb6i4/AWVpXjQAludgA +# NHARSFyzEjltq7Udsw5sSZo68N8oWkL+QKz842RqIiggTltm6dHYFcmB1YRRqMdX +# 6Y7gJT9Sp8FVI10FxGF5I6d6BtQCjDBc2/s1ih0E111SANl995D8FgY8ea5u1nqE +# omlCBbjdoqYy3APET2hABpIM6hcwIaxCvd+ugmJnHSP+PxI/8RxJh8jT/GFRzkL1 +# wy/kD2iMl711Czg3DL/yAHXusqSw95hZmW2mtL7HNvSz04rifjZw3QnYPwIi46CS +# i34Kr9p9dB1VV7++Zo9SmgdjmvGeFjH2Jth3xExPkoULaWrvIbqcpOs9E7sAUJTB +# sB0CAwEAAaOCARswggEXMB0GA1UdDgQWBBQi72h0uFIDuXSWYWPz0HeSiMCTBTAf +# BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH +# hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU +# aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF +# BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0 +# YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG +# AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBnP/nYpaY+bpVs4jJlH7SsElV4cOvd +# pnCng+XoxtZnNhVboQQlpLr7OQ/m4Oc78707RF8onyXTSWJMvHDVhBD74qGuY3KF +# mqWGw4MGqGLqECUnUH//xtfhZPMdixuMDBmY7StqkUUuX5TRRVh7zNdVqS7mE+Gz +# EUedzI2ndTVGJtBUI73cU7wUe8lefIEnXzKfxsycTxUos0nUI2YoKGn89ZWPKS/Y +# 4m35WE3YirmTMjK57B5A6KEGSBk9vqyrGNivEGoqJN+mMN8ZULJJKOtFLzgxVg7m +# z5c/JgsMRPvFwZU96hWcLgrNV5D3fNAnWmiCLCMjiI8N8IQszZvAEpzIMIIGcTCC +# BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv +# b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN +# MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv +# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0 +# aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw +# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0 +# VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw +# RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe +# dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx +# Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G +# kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA +# AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7 +# fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC +# AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX +# zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v +# cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI +# KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g +# AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB +# BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA +# bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh +# IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS +# +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK +# kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon +# /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi +# PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/ +# fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII +# YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0 +# cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a +# KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ +# cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+ +# NR4Iuto229Nfj950iEkSoYIC0jCCAjsCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT +# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP +# cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo0 +# RDJGLUUzREQtQkVFRjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy +# dmljZaIjCgEBMAcGBSsOAwIaAxUARAw2kg/n/0n60D7eGy96WYdDT6aggYMwgYCk +# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH +# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD +# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF +# AOOOqLMwIhgPMjAyMDEyMjQwOTQyMTFaGA8yMDIwMTIyNTA5NDIxMVowdzA9Bgor +# BgEEAYRZCgQBMS8wLTAKAgUA446oswIBADAKAgEAAgIhwwIB/zAHAgEAAgIRjzAK +# AgUA44/6MwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIB +# AAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBABUdoRkAdWw+UMZK +# CPVyA5MwL4Qgt4DYpLk87wNon60fDkSNTPMsNPv3PwnFNwOWJvTCY5zLvzheHSUe +# KhizpPgF8P2Hcv3TcLLJWXSAuWGI12fuxE3PVS47FvESnG022eE9AfW+167OhpV1 +# dfiPE6YXGA0KiuP+ay4fP1uj70hTMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMC +# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV +# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp +# bWUtU3RhbXAgUENBIDIwMTACEzMAAAErk9Dtjgr38EcAAAAAASswDQYJYIZIAWUD +# BAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0B +# CQQxIgQgS4ozfWHqktk+MEJilHY/UxzTHnVN20GLkcRZZWnOAlcwgfoGCyqGSIb3 +# DQEJEAIvMYHqMIHnMIHkMIG9BCBkJznmSoXCUyxc3HvYjOIqWMdG6L6tTAg3KsLa +# XRvPXzCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u +# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp +# b24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB +# K5PQ7Y4K9/BHAAAAAAErMCIEIIJb4J1LeSwa+sbSKDnA6WZNDclHhr8GnJbQnyv8 +# Bs3UMA0GCSqGSIb3DQEBCwUABIIBAFdfTvMDN/hI/of9CFSS0y0koAPYzKy0AoP9 +# wjZGQc1OGjcGmRqXldY9RBJNQTWxkR5LxpaLwtTadjMW8O+b19Soki7KgCEEB2Ch +# j2sPeaXyX1aoyIYlGs/X2dqCimJ4Qce/oHrX9I0Fumfcc1a9BiKSieweYAwYQc73 +# B/E17/RHAGcYFumjS+y1pJhuJdDJuGv7FOT+YV1YI1LBk/owv2HqT7LwDYvLYtEV +# GxGaRb96BEKoQYNIgNS2a9e9SYoAAJaNCbgtbI7COCjCYgIA03m86MWU52EduCD1 +# a82uKezFyx5R1UFMPak4rRn6W/PEpTS2tErb4PdeCKlSbjugrfM= +# SIG # End signature block diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..adf2f550a195376f53fd2d5526e117aed8aecd4f GIT binary patch literal 160136 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..11a257e7d5f48fbd806a3fa14d9390de4ba5b5e1 GIT binary patch literal 216960 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll new file mode 100644 index 0000000000000000000000000000000000000000..cf88b02fef1f7d5a54bac4638b934b25c8bff4a9 GIT binary patch literal 37256 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Microsoft.Identity.Client.dll new file mode 100644 index 0000000000000000000000000000000000000000..3243f7ea554aa660a68813863e1c54ce4bd1ce61 GIT binary patch literal 1377736 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 D35!!#b*+qiP5n?Xl?t; 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�h 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..609262ff1207f8d37913773ed1e033d3f6dddde2 GIT binary patch literal 701336 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

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

ISmN)TS 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 EA7PsUQ~&?~ literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.Azure.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/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.2.3/Microsoft.Rest.ClientRuntime.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..400c8287a752dff78595acd802b7404f9301d096 GIT binary patch literal 79736 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 literal 0 HcmV?d00001 diff --git a/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll b/swaggerci/appplatform/generated/modules/Az.Accounts/2.2.3/Microsoft.WindowsAzure.Storage.DataMovement.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ac672abd48641e9dc4266d9fc3dfabcfad39110 GIT binary patch literal 302784 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